在php中按值从多维数组中删除项

在php中按值从多维数组中删除项,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有一个多维数组$array,如下所示: array (size=3) 0 => array (size=1) 0 => object(stdClass)[500] public 'id' => int 2 public 'first_name' => string 'Mary' (length=4) public 'last_name' => string 'S

我有一个多维数组
$array
,如下所示:

array (size=3)
  0 => 
    array (size=1)
      0 => 
        object(stdClass)[500]
          public 'id' => int 2
          public 'first_name' => string 'Mary' (length=4)
          public 'last_name' => string 'Sweet' (length=5)
  1 => 
    array (size=1)
      0 => 
        object(stdClass)[501]
          public 'id' => int 9
          public 'first_name' => string 'Joe' (length=3)
          public 'last_name' => string 'Bob' (length=3)
  2 => 
    array (size=1)
      0 => 
        object(stdClass)[502]
          public 'id' => int 1
          public 'first_name' => string 'Shag' (length=4)
          public 'last_name' => string 'Well' (length=4)
array (size=2)
  0 => 
    array (size=1)
      0 => 
        object(stdClass)[500]
          public 'id' => int 2
          public 'first_name' => string 'Mary' (length=4)
          public 'last_name' => string 'Sweet' (length=5)
  1 => 
    array (size=1)
      0 => 
        object(stdClass)[502]
          public 'id' => int 1
          public 'first_name' => string 'Shag' (length=4)
          public 'last_name' => string 'Well' (length=4)
我希望能够通过搜索值(而不是索引)删除数组中的一项

因此,我想删除数组中具有'Joe'属性的first\u name

因此,如果我将其移除,阵列将如下所示:

array (size=3)
  0 => 
    array (size=1)
      0 => 
        object(stdClass)[500]
          public 'id' => int 2
          public 'first_name' => string 'Mary' (length=4)
          public 'last_name' => string 'Sweet' (length=5)
  1 => 
    array (size=1)
      0 => 
        object(stdClass)[501]
          public 'id' => int 9
          public 'first_name' => string 'Joe' (length=3)
          public 'last_name' => string 'Bob' (length=3)
  2 => 
    array (size=1)
      0 => 
        object(stdClass)[502]
          public 'id' => int 1
          public 'first_name' => string 'Shag' (length=4)
          public 'last_name' => string 'Well' (length=4)
array (size=2)
  0 => 
    array (size=1)
      0 => 
        object(stdClass)[500]
          public 'id' => int 2
          public 'first_name' => string 'Mary' (length=4)
          public 'last_name' => string 'Sweet' (length=5)
  1 => 
    array (size=1)
      0 => 
        object(stdClass)[502]
          public 'id' => int 1
          public 'first_name' => string 'Shag' (length=4)
          public 'last_name' => string 'Well' (length=4)

我怎样才能做到这一点?谢谢。

是的,在这种情况下,您可以使用foreach。它会很好用的。只需使用搜索字符串pinder,并在循环中添加if,比较objects属性firstname和pinder:

$first_name_search = 'Joe';
foreach ($array as $key => $value) {
    $value = reset($value); // get that index 0 which is nested 
    if($value->first_name == $first_name_search) {
        unset($array[$key]);
    }
}