dongwu8050 2013-03-12 17:10
浏览 13

php - diffing嵌套数组

I have 2 multidimensional arrays:

$first_array = array(
  0 => array(tid => 141), 
  1 => array(tid => 142), 
  2 => array(tid => 128)
);

$second_array = array(
  0 => array(tid => 141), 
  1 => array(tid => 128)
);

I need to check if there are any items in the second array that are present in the first array. If there are, I need to remove them from the first array.

Taking the example above, $first_array should end up as array(0 => array(tid => 142))

Any suggestions?

Edit: Here is what I used:

$first_array = array(
  0 => array('tid' => 141), 
  1 => array('tid' => 142), 
  2 => array('tid' => 128)
);

$second_array = array(
  0 => array('tid' => 141), 
  1 => array('tid' => 128)
);


function my_serialize(&$arr,$pos){ 
  $arr = serialize($arr); 
} 

function my_unserialize(&$arr,$pos){ 
  $arr = unserialize($arr); 
} 

 //make a copy 
$first_array_s = $first_array; 
$second_array_s = $second_array; 

// serialize all sub-arrays 
array_walk($first_array_s,'my_serialize'); 
array_walk($second_array_s,'my_serialize'); 

// array_diff the serialized versions 
$diff = array_diff($first_array_s,$second_array_s); 

// unserialize the result 
array_walk($diff,'my_unserialize'); 

print_r($diff); 
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 GDI处理通道视频时总是带有白色锯齿
    • ¥20 用雷电模拟器安装百达屋apk一直闪退
    • ¥15 算能科技20240506咨询(拒绝大模型回答)
    • ¥15 自适应 AR 模型 参数估计Matlab程序
    • ¥100 角动量包络面如何用MATLAB绘制
    • ¥15 merge函数占用内存过大
    • ¥15 Revit2020下载问题
    • ¥15 使用EMD去噪处理RML2016数据集时候的原理
    • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
    • ¥15 单片机无法进入HAL_TIM_PWM_PulseFinishedCallback回调函数