【发布时间】:2022-02-09 20:22:08
【问题描述】:
我有两个多维数组,它们是关联行的索引数组。
$array1 = array(
array('name' => 'foo', 'id' => 12),
array('name' => 'bar', 'id' => 34),
array('name' => 'boo', 'id' => 56),
);
$array2 = array(
array('name' => 'bar', 'id' => 34),
array('name' => 'boo', 'id' => 56),
array('name' => 'bar', 'id' => 78),
);
行可能有不同的id 值但相同的name 值——例如我的示例输入数据中的bar。
我只需要比较基于 id 值的数组。
预期输出:(因为 ids 34 和 56 在 $array2 中找到)
array(
array('name' => 'foo', 'id' => 12)
)
我试过$one_not_two = array_diff($array1['id'], $array2['id']); 没有返回任何东西。
我也试过$one_not_two = array_diff($array1['id'], $array2['id']);
返回错误“参数不是数组。”
最初,我通过将ids 提取到一维数组中来解决它,然后只比较它们。现在,我们应用程序中的一个新功能要求我在保持多维结构的同时比较行。有什么建议吗?
如果这有什么不同的话,我们的服务器目前正在运行 php 5.3。
【问题讨论】:
标签: php multidimensional-array filtering associative-array array-difference