我有一个包含以下项的数组(content):
Array
(
[0] => Array
(
[id] => 53
)
[1] => Array
(
[id] => 54
)
[2] => Array
(
[id] => 60
)
)我想删除在另一个数组中具有特定id的所有项,例如:$to_remove = ["53", "54", "60"],我所做的是:
foreach($to_remove as $id)
{
$key = array_search($id, array_column($content, 'id'));
unset($content[$key]);
}问题是,在最终结果中,我得到了:
Array
(
[2] => Array
(
[answer] => >20%
[points] => 3
[id] => 60
)
)为什么?
发布于 2019-01-22 05:57:13
这里有一个有趣的方式:
$content = array_intersect_key($content,
array_diff(array_column($content, 'id'), $to_remove));从原始数据中提取id值,使用$to_remove计算差异,然后计算与原始数据的关键差异。
https://stackoverflow.com/questions/54298079
复制相似问题