Метод dot
Метод dot класса Arr преобразует многомерный массив в одномерный массив, где ключи вложенных элементов объединяются через точку. Первым и единственным параметром передаётся исходный многомерный массив. Метод возвращает новый одномерный массив с ключами в формате точечной нотации.
Синтаксис
<?php
Arr::dot($array);
?>
Пример
Давайте преобразуем многомерный массив с данными пользователя:
<?php
use Illuminate\Support\Arr;
$user = [
'name' => 'John',
'profile' => [
'age' => 30,
'city' => 'New York',
'skills' => [
'php' => 'expert',
'laravel' => 'advanced'
]
]
];
$res = Arr::dot($user);
print_r($res);
?>
Результат выполнения кода:
[
"name" => "John",
"profile.age" => 30,
"profile.city" => "New York",
"profile.skills.php" => "expert",
"profile.skills.laravel" => "advanced"
]
Пример
Преобразуем массив с несколькими уровнями вложенности:
<?php
use Illuminate\Support\Arr;
$data = [
'user' => [
'id' => 1,
'info' => [
'email' => 'test@example.com',
'status' => 'active'
]
],
'settings' => [
'theme' => 'dark',
'notifications' => true
]
];
$res = Arr::dot($data);
print_r($res);
?>
Результат выполнения кода:
[
"user.id" => 1,
"user.info.email" => "test@example.com",
"user.info.status" => "active",
"settings.theme" => "dark",
"settings.notifications" => true
]
Пример
Используем метод dot для работы с конфигурационными данными:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Arr;
class ConfigController extends Controller
{
public function show()
{
$config = [
'app' => [
'name' => 'Laravel',
'debug' => true,
'env' => 'local'
],
'database' => [
'default' => 'mysql',
'connections' => [
'mysql' => [
'host' => '127.0.0.1',
'database' => 'test_db'
]
]
]
];
$res = Arr::dot($config);
echo $res['app.name'];
echo $res['database.connections.mysql.host'];
}
}
?>
Результат выполнения кода:
"Laravel127.0.0.1"