Laravel array_forget()帮助器,用于嵌套数组

时间:2018-11-14 16:29:35

标签: php arrays laravel laravel-5

我正在使用Laravel,并且有一个简单的嵌套数组

[
  ['id' => 1, 'name' => 'name1', 'phone' => '0'],
  ['id' => 2, 'name' => 'name2', 'phone' => '00'],
  ['id' => 3, 'name' => 'name3', 'phone' => '000']
]

我想使用Laravel array_forget()或其他任何简单方式
不用手机就能得到这个阵列

4 个答案:

答案 0 :(得分:1)

您可以这样做:

$elements = [
  ['id' => 1, 'name' => 'name1', 'phone' => '0'],
  ['id' => 2, 'name' => 'name2', 'phone' => '00'],
  ['id' => 3, 'name' => 'name3', 'phone' => '000']
];

$elements_without_phones = collect($elements)->map(function ($element){
    array_forget($element, 'phone');

    return $element;
});

答案 1 :(得分:0)

您可以看一下laravel的高级收集方法-一堆方便的帮助程序,旨在与Laravel中的数组式收集一起使用。您可能需要的是except() method

答案 2 :(得分:0)

您必须迭代数组的数组,并对每个(子)数组应用array_forget()函数。

$array = [
    ['id' => 1, 'name' => 'name1', 'phone' => '0'],
    ['id' => 2, 'name' => 'name2', 'phone' => '00'],
    ['id' => 3, 'name' => 'name3', 'phone' => '000']
];

foreach($array as &$sub_array) { //note the passing by reference
    array_forget($sub_array, 'phone');
}

答案 3 :(得分:-1)

$collection = collect(['product_id' => 1, 'name' => 'Desk', 'price' => 100, 'discount' => false]);

$filtered = $collection->only(['product_id', 'name']);

$filtered->all();

// Output: ['product_id' => 1, 'name' => 'Desk']