2020年11月25日 下午16:03:31 lijianz
原文链接:
业务场景
假设需要查询出一个表中的所有联系人数据,由于数据过于庞大,不能将数据表内的数据一次性全部查询出来,只能按照分页查询进行进一步的筛选数据,如果需要返回某些用户状态,比如上线,置顶聊天等等。那么必须操作两个数组,一个数组按照分页查询用户数据,一个数组按照某个条件查询某状态的用户数据
// arr1数组是查询某状态的用户数据(固定每页几条)
$arr1 = array(
'0' => array(
'id' => '101',
'name' => 'jack',
'age' => '16'
),
'1' => array(
'id' => '102',
'name' => 'sand',
'age' => '17'
)
);
// arr1数组是查询用户数据 (固定每页几条)
$arr2 = array(
'0' => array(
'id' => '103',
'name' => 'lucy',
'age' => '16'
),
'1' => array(
'id' => '101',
'name' => 'jack',
'age' => '16'
)
);
// 如果数组arr1不为空
if (!empty($arr1)) {
// 将二维数组arr1提取id值出来转换成一维数组
$arr_id = array_column($arr1, 'id');
foreach ($arr2 as $v) {
// 去重操作
if (!in_array($v['id'], $arr_id)) {
$arrs[] = [
'id' => $v['id'],
'name' => $v['name'],
'age' => $v['age']
];
}
}
// 合并数组
$arr2 = array_merge($arr1, $arrs);
}
// 返回数组
return json_encode($arr2);
End 2020