在我的 Laravel 项目中,我有一个点符号数组,我需要将其转换为多维数组。
数组是这样的:
$dotNotationArray = ['cart.item1.id' => 15421a4,
'cart.item1.price' => '145',
'cart.item2.id' => 14521a1,
'cart.item2.price' => '1245'];
我怎样才能把它扩展成这样的数组:
'cart' => [
'item1' => [
'id' => '15421a4',
'price' => 145
],
'item2' => [
'id' => '14521a1',
'price' => 1245,
]
]
我该怎么做?
最佳答案
在 Laravel 6+ 中你可以使用 Arr::set()
为此:
The Arr::set method sets a value within a deeply nested array using "dot" notation:
use Illuminate\Support\Arr;
$multiDimensionalArray = [];
foreach ($dotNotationArray as $key => $value) {
Arr::set($multiDimensionalArray , $key, $value);
}
dump($multiDimensionalArray);
如果您使用的是 Laravel 5.x,您可以使用 array_set()
相反,它在功能上是相同的。
解释:
Arr::set()
将点符号格式的键的值设置为指定的键,并输出一个数组,如 ['products' => ['desk' => [ '价格' => 200]]]
。因此您可以遍历数组键以获得多维数组。
关于php - 如何将点符号数组扩展为完整的多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48740866/