多维数组中的unset()检查键是否首先存在

时间:2019-06-14 20:22:02

标签: php

我的数组:

$array = array(
  'test' => 'hello',
  'something' => array(
    'sub1' => 'foo'
  )
);

我想使用:

if(array_key_exists('sub1', $array['something'])
{
  unset($array['something']['sub1'];
}

unset部分有效,但是在sub1项目肯定存在的情况下,if语句返回false。为什么会这样?

1 个答案:

答案 0 :(得分:0)

我认为您需要重新格式化代码。但是,这是格式化的代码,

 $arr = [
    'test' => 'hello',
    'something' => [
        'sub1' => 'foo'
     ]
  ];

  if(
     is_array($arr['something']) && 
     array_key_exists('sub1', $arr['something'])
   )
   {
      unset($arr['something']['sub1']);
   }

  print_r($arr);

我得到以下结果,

Array
(
    [test] => hello
    [something] => Array
        (
        )

)

您能详细说明您想做什么吗?