从 PHP 中的嵌套数组中删除元素

Removing an element from a nested array in PHP

我正在开发一个 Laravel 应用程序,我有一个关联数组要传递给 API 端点,在发布到 API 之前,我想要删除 img 键及其值 。我尝试使用 unset 函数,但它没有删除 img 键

我要删除图片的数组属性

 $a[] = [
  0 => array:4 [
    "name" => "Martoo nnn"
    "relationship" => "Spouse"
    "dob" => "2001-02-03"
    "img" => "img.png"
  ]
  1 => array:4 [
    "name" => "sdsdsd sdsdsd"
    "relationship" => "Child"
    "dob" => "2019-04-04"
    "img" => "img1.png"
  ]
  2 => array:4 [
    "name" => "sdsdsd sddds"
    "relationship" => "Child"
    "dob" => "2019-04-05"
    "img" => "img2.png"
  ]
  3 => array:4 [
    "name" => "dssdsd dsdsd"
    "relationship" => "Child"
    "dob" => "2019-04-02"
    "img" => "img3.png"
  ]
  4 => array:4 [
    "name" => "dssdsd dssdsd"
    "relationship" => "Child"
    "dob" => "2019-04-04"
    "img" => "img4.png"
  ]
];

取消设置方法

$array = $a;
unset($array['img']);

//dd($a);

你可以这样做,

foreach ($array as $key => &$value) { // & defines changes will be made @ value itself
    unset($value['img']);
}

是的,我不明白你为什么将 $a 初始化为 $a[]

$newarray = array_filter($a, function($k) {
    return $k != 'img';
}, ARRAY_FILTER_USE_KEY);

并传递这个新数组