php將兩個不同長度陣列相同的key合併到一個數組,不同的key也合併進去
阿新 • • 發佈:2019-01-26
1.處理前的陣列:
<?php $arr1 = array( array( 'id' => 1, 'user_name'=>'test1' ), array( 'id' => 2, 'user_name'=>'test2' ), array( 'id' => 3, 'user_name'=>'test3' ) ); $arr2 = array( array( 'id' => 1, 'shop_name'=>'shop1' ), array( 'id' => 5, 'shop_name'=>'shop2' ), array( 'id' => 3, 'shop_name'=>'shop3' ), array( 'id' => 4, 'shop_name'=>'shop4' ) );
2.根據2個數組id相同的一維陣列,將$arr2的shop_name新增到$arr1,將$arr1的user_name新增到$arr2,如果沒有相同的id,shop_name和user_name為空,處理後的陣列:
$new_arr =array( array( 'id' => 1, 'user_name'=>'test1', 'shop_name'=>'shop1' ), array( 'id' => 2, 'user_name'=>'test2', 'shop_name'=>'' ), array( 'id' => 3, 'user_name'=>'test3', 'shop_name'=>'shop3' ), array( 'id' => 4, 'user_name'=>'', 'shop_name'=>'shop4' ), array( 'id' => 5, 'user_name'=>'', 'shop_name'=>'shop2' ), );
3:處理的過程
$new_arr = array(); foreach ($arr1 as $val) { $new_arr[$val['id']] = array('id'=>$val['id'],'shop_name'=>'','user_name'=>$val['user_name']); } foreach ($arr2 as $val) { if(isset($new_arr[$val['id']])){ $new_arr[$val['id']]['shop_name'] = $val['shop_name']; }else{ $new_arr[$val['id']] = array('id'=>$val['id'],'shop_name'=>$val['shop_name'],'user_name'=>'',); } } var_dump(array_values($new_arr));