Json массив для массива

У меня есть массив JSON из Laravel, как это:

Illuminate\Support\Collection Object
(
    [items:protected] => Array
        (
            [0] => Array
                (
                    [_id] => MongoDB\BSON\ObjectID Object
                        (
                            [oid] => 5a15e52b5bd98b7a0040fac8
                        )

                    [UnitPrice] => 18
                    [UnitsInStock] => 39
                )

            [1] => Array
                (
                    [_id] => MongoDB\BSON\ObjectID Object
                        (
                            [oid] => 5a15e52b5bd98b7a0040fac9
                        )

                    [UnitPrice] => 19
                    [UnitsInStock] => 17
                )

            [2] => Array
                (
                    [_id] => MongoDB\BSON\ObjectID Object
                        (
                            [oid] => 5a15e52b5bd98b7a0040faca
                        )

                    [UnitPrice] => 10
                    [UnitsInStock] => 13
                )

        )

)

Как я могу взять только UnitPrice и UnitsInStock как массив? Есть ли способ без использования петли?

Я хочу использовать это так:

...

->dataset('UnitPrice', [5,20,100,...]) // array's values = [5,20,100,...]

->dataset('UnitsInStock', [52,120,100,...]) // array's values = [52,120,100,...]

1 ответ

Решение

В Laravel есть метод list для получения массива для данного столбца. В противном случае вы можете использовать метод array_column в PHP.

$unitPrices = array_column($items, 'UnitPrice');
Другие вопросы по тегам