我正在尝试在多维数组中取消设置数组项。然而,这种方法仅适用于第二循环unset
中的第一循环(这不是我的情况)。
我试图在这里找到但无法通过这些解决方案获得结果。所以最终用新帖子发帖。
$arr = [
'subnav' => [
'first' => [
'one' => 'hello',
'two' => 'Jatin',
'admin' => TRUE,
],
'second' => [
'one' => 'hello',
'two' => 'Priya',
'admin' => FALSE,
],
],
'pagenav' => [
'cook' => [
'one' => 'hello',
'two' => 'Rahul',
'admin' => TRUE,
],
'driver' => [
'one' => 'hello',
'two' => 'Vijay',
'admin' => TRUE,
],
],
];
foreach ( $arr as $floop => $fval ) {
foreach ( $fval as $nav => $item ) {
if ( $item[ 'admin' ] == FALSE ) {
unset( $fval[ $nav ] );
}
}
}
所以我想删除所有admin => false
答案 0 :(得分:1)
你尝试取消设置一个不是数组的变量,所以试试
foreach ( $arr as $floop => $fval ) {
foreach ( $fval as $nav => $item ) {
if ( $item[ 'admin' ] == FALSE ) {
unset( $arr[$floop][ $nav ] );
}
}
}
答案 1 :(得分:0)
您可以尝试以下方法:(未经测试)
function unsetAdmin(&$array)
{
foreach($array as $key => &$value) {
if (is_array($value)) {
unsetAdmin($value);
}
if (false === $value && $key == 'admin') {
unset($array[$key]);
}
}
}