Я использую Laravel 5.6. Мне нужна функция, которая возвращает только указанные пары ключ/значение из заданного массива с использованием точечной записи.
Например:
$array = [
'name' => [
'first' => 'John',
'last' => 'Smith'
],
'price' => 100,
'orders' => 10
];
$slice = someFunc($array, ['name.first', 'price']);
должен вернуться:
[
'name' => [
'first' => 'John'
],
'price' => 100,
]
Ближайшая функция, которая делает это в Laravel, которую я могу найти, — это функция array_only
:
https://laravel.com/docs/5.6/helpers#method-array-only
Однако он не поддерживает запись через точку (в отличие от некоторых других функций Laravel).
Как я могу этого добиться?
array_get
? - person u_mulder   schedule 20.03.2018array_only(array_dot($array), ['name.first', 'price']);
, и если вам нужно, чтобы это была одна функция, вы можете добавить свой собственный помощник, который обертывает эти две функции. - person sam   schedule 20.03.2018$array = collect($array); $array->get('name.first');
, но мне прислалиnull
. - person Anwar   schedule 20.03.2018