我有一个像这个$membergroups
的多维数组:
Array ( [0] =>
Array ( [id] => 1645819602
[name] => Oryza NurFa
[first_name] => Oryza
[last_name] => NurFa
[work] => MAN 2 Yogyakarta )
[1] =>
Array ( [id] => 100000251643877
[name] => Lathif Pambudi
[first_name] => Muhammad Lathif
[last_name] => Pambudi
[work] => Omah TI )
[2] =>
Array ( [id] => 1152078197
[name] => Novantio Bangun
[first_name] => Novantio
[last_name] => Bangun
[work] => Pertamina))
如何删除具有特定值的子数组之一。对于该示例,我想删除内部带有[id] => 100000251643877
的数组?所以输出将是:
Array ( [0] =>
Array ( [id] => 1645819602
[name] => Oryza NurFa
[first_name] => Oryza
[last_name] => NurFa
[work] => MAN 2 Yogyakarta )
[1] =>
Array ( [id] => 1152078197
[name] => Novantio Bangun
[first_name] => Novantio
[last_name] => Bangun
[work] => Pertamina))
这是我的PHP代码,但它不起作用:
if (($key = array_search($user_fbid, $membergroups)) !== false) {
unset($membergroups[$key]);
}
非常感谢任何帮助。谢谢
答案 0 :(得分:4)
您可以使用array_column
但仅适用于php >= 5.5
if (($key = array_search($user_fbid, array_column( $membergroups, 'id') ) !== false) {
unset($membergroups[$key]);
}
array_column( $membergroups, 'id')
在成员组多维数组中搜索id列,并返回一个包含所有行值数组的数组,其中包含id键。
array_column - > MANUAL
答案 1 :(得分:0)
遍历整个数组:
foreach ($membergroups as $idx => $group) {
if ($group['id'] === $user_fbid) {
unset($membergrouops[$idx]);
break;
}
}
答案 2 :(得分:0)
使用foreach,你可以像这样完成工作
$id = 100000251643877;//Example
foreach($membergroups as $key => $value){
if($value['id'] == $id){
unset($membergroups[$key]);
}
}
答案 3 :(得分:0)
foreach($membergroups as $key => $value){
if($value['id'] == $user_fbid){
unset($membergroups[$key]);
}
}
不要忘记在删除键后合并数组以保持索引的顺序
$membergroups = array_merge($membergroups);