创建映射数组键的数组
Create array of mapped array keys
我正在尝试创建一个显示数组布局的数组。
这将是输入:
$array = [
'company' => [
'contacts' => [
'first_names',
'last_name',
'emails',
'phones' => [
'test'
]
],
'addresses' => [
'postal_code'
],
]
];
这就是我试图让输出看起来像的东西:
$array = [
'company.contacts.phones'
'company.addresses'
];
几个小时以来,我一直在努力解决这个问题,但一直没有想出解决方案。它需要与任何 layout/depth 输入数组一起使用。
借助一些 Laravel 助手和集合,这可以轻松完成
这是:
$array = [
'company' => [
'contacts' => [
'first_names',
'last_name',
'emails',
'phones' => [
'test',
],
],
'addresses' => [
'postal_code',
],
],
];
collect(Arr::dot($array))->keys()->map(function ($key)
{
return Str::beforeLast($key, '.');
})->unique()->dd();
输出:
array:3 [▼
0 => "company.contacts"
3 => "company.contacts.phones"
4 => "company.addresses"
]
我正在尝试创建一个显示数组布局的数组。
这将是输入:
$array = [
'company' => [
'contacts' => [
'first_names',
'last_name',
'emails',
'phones' => [
'test'
]
],
'addresses' => [
'postal_code'
],
]
];
这就是我试图让输出看起来像的东西:
$array = [
'company.contacts.phones'
'company.addresses'
];
几个小时以来,我一直在努力解决这个问题,但一直没有想出解决方案。它需要与任何 layout/depth 输入数组一起使用。
借助一些 Laravel 助手和集合,这可以轻松完成
这是:
$array = [
'company' => [
'contacts' => [
'first_names',
'last_name',
'emails',
'phones' => [
'test',
],
],
'addresses' => [
'postal_code',
],
],
];
collect(Arr::dot($array))->keys()->map(function ($key)
{
return Str::beforeLast($key, '.');
})->unique()->dd();
输出:
array:3 [▼
0 => "company.contacts"
3 => "company.contacts.phones"
4 => "company.addresses"
]