从多维数组中搜索和删除

Tim*_*Tim 3 php arrays

如果我的值ID等于1并搜索数组,我想从数组本身中删除ID,如果找到则为1.

Array (
[0] => Array
    (
        [id] => 1
    )
[1] => Array
    (
        [id] => 4
    )
[2] => Array
    (
        [id] => 5
    )
[3] => Array
    (
        [id] => 7
    )
)
Run Code Online (Sandbox Code Playgroud)

新阵列

Array (
[0] => Array
    (
        [id] => 4
    )
[1] => Array
    (
        [id] => 5
    )
[2] => Array
    (
        [id] => 7
    )
)
Run Code Online (Sandbox Code Playgroud)

我正在使用search_array,我假设因为它是多维的,它没有找到它.有没有办法搜索上面的数组?

GSt*_*Sto 7

如果您只检查一个值,为什么不使用foreach循环?

foreach ( $arr as $key => $value )
  {
    if ( $value['id'] == '1' )
      {
        unset( $arr[$key] );
      }
  }
Run Code Online (Sandbox Code Playgroud)


sal*_*the 5

另一种方法是这样的(假设你正在过滤掉integer的id 1):

$filtered = array_filter($arr, function ($val) { return $val['id'] !== 1; });
Run Code Online (Sandbox Code Playgroud)

请注意,上面使用了巧妙命名的array_filter函数和匿名函数作为回调(它执行过滤;如果愿意,或者如果您尚未接受 PHP 5.3,您可以使用“正常”命名函数)。