PHP 两个二维数组进行合并

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

你可能感兴趣的:(PHP,php)