Функция data_get
Функция data_get позволяет извлекать значения из вложенных
массивов и объектов, используя "точечную" нотацию для указания
пути. Первым параметром передаётся массив или объект, вторым -
путь к данным в виде строки, разделённой точками. Третий параметр
необязательный - значение по умолчанию, которое будет возвращено,
если путь не существует. Если путь не найден и значение по
умолчанию не указано, функция вернёт null.
Синтаксис
<?php
data_get($target, $key, $default = null);
?>
Пример
Давайте получим значение вложенного элемента из массива:
<?php
$data = [
'user' => [
'name' => 'John',
'profile' => [
'age' => 30
]
]
];
$res = data_get($data, 'user.name');
echo $res;
?>
Результат выполнения кода:
"John"
Пример
Давайте получим значение с указанием значения по умолчанию:
<?php
$data = [
'user' => [
'name' => 'John'
]
];
$res = data_get($data, 'user.email', 'default@example.com');
echo $res;
?>
Результат выполнения кода:
"default@example.com"
Пример
Давайте получим значение из объекта с использованием точечной нотации:
<?php
class User
{
public $name = 'John';
public $profile;
}
class Profile
{
public $age = 30;
}
$user = new User();
$user->profile = new Profile();
$res = data_get($user, 'profile.age');
echo $res;
?>
Результат выполнения кода:
"30"
Пример
Давайте используем звёздочку для получения всех значений вложенных массивов:
<?php
$data = [
'users' => [
['name' => 'John', 'age' => 30],
['name' => 'Jane', 'age' => 25],
['name' => 'Bob', 'age' => 35]
]
];
$res = data_get($data, 'users.*.name');
echo json_encode($res);
?>
Результат выполнения кода:
["John","Jane","Bob"]
Смотрите также
-
функция
data_set,
которая устанавливает значение по точечному пути -
функция
data_fill,
которая заполняет данные по точечному пути -
функция
data_forget,
которая удаляет данные по точечному пути -
функция
Arr::get,
которая извлекает значение из массива по точечному пути