Php 删除多维数组中value=somevalue的数组子级
我有这样一个多维数组Php 删除多维数组中value=somevalue的数组子级,php,arrays,Php,Arrays,我有这样一个多维数组$membergroups: Array ( [0] => Array ( [id] => 1645819602 [name] => Oryza NurFa [first_name] => Oryza [last_name] => NurFa [work] => MAN 2 Yogyakarta ) [1] => Array ( [i
$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]);
}
任何帮助都将不胜感激。谢谢您可以使用
array\u列
,但只能用于php>=5.5
if (($key = array_search($user_fbid, array_column( $membergroups, 'id') ) !== false) {
unset($membergroups[$key]);
}
array\u column($membergroups,'id')
在membergroup多维数组中搜索id列,并返回一个数组,该数组包含具有id键的所有行值条目
array\u column->您可以使用
array\u column
,但只能用于php>=5.5
if (($key = array_search($user_fbid, array_column( $membergroups, 'id') ) !== false) {
unset($membergroups[$key]);
}
array\u column($membergroups,'id')
在membergroup多维数组中搜索id列,并返回一个数组,该数组包含具有id键的所有行值条目
数组\u列->在整个数组中循环:
foreach ($membergroups as $idx => $group) {
if ($group['id'] === $user_fbid) {
unset($membergrouops[$idx]);
break;
}
}
在整个阵列中循环:
foreach ($membergroups as $idx => $group) {
if ($group['id'] === $user_fbid) {
unset($membergrouops[$idx]);
break;
}
}
用foreach你可以做这样的工作
$id = 100000251643877;//Example
foreach($membergroups as $key => $value){
if($value['id'] == $id){
unset($membergroups[$key]);
}
}
用foreach你可以做这样的工作
$id = 100000251643877;//Example
foreach($membergroups as $key => $value){
if($value['id'] == $id){
unset($membergroups[$key]);
}
}
不要忘记删除键后合并数组以保持索引的连续性
$membergroups = array_merge($membergroups);
不要忘记删除键后合并数组以保持索引的连续性
$membergroups = array_merge($membergroups);
谢谢,阵列已成功删除。但是在它被删除后,另一个数组的索引不会改变。使用您的代码,在[1][2][3][4]之前,在[1][3][4]之后。。如何保持索引的顺序?您需要对数组进行排序..使用
ksort($array)代码>谢谢,阵列已成功删除。但是在它被删除后,另一个数组的索引不会改变。使用您的代码,在[1][2][3][4]之前,在[1][3][4]之后。。如何保持索引的顺序?您需要对数组进行排序..使用ksort($array)代码>