GTM*_*eor 3 php flatten collect laravel
我有以下数组:
$array = [
'2' => ['3' => ['56' => '2'], '6' => ['48' => '2']],
'4' => ['4' => ['433' => '2', '140' => '2'], '8' => ['421' => '2', '140' => '2']],
'5' => ['5' => ['88' => '4', '87' => '2']]
];
Run Code Online (Sandbox Code Playgroud)
以下代码(拼合)应通过保留键返回,但不是吗?
collect($array)->flatten(1);
Run Code Online (Sandbox Code Playgroud)
应该给我
[
'3' => ['56' => '2'],
'6' => ['48' => '2'],
'4' => ['433' => '2', '140' => '2'],
'8' => ['421' => '2', '140' => '2'],
'5' => ['88' => '4', '87' => '2']
]
Run Code Online (Sandbox Code Playgroud)
但是它丢失了密钥,只给出了数组结果:/我使用错了吗?我应该如何展平和保存密钥?
小智 5
一个不错的解决方案是使用mapWithKeys方法。这将使数组变平并保留键:
collect($array)->mapWithKeys(function($a) {
return $a;
});
Run Code Online (Sandbox Code Playgroud)
该
mapWithKeys方法遍历集合并将每个值传递给给定的回调。回调应返回一个包含单个键/值对的关联数组
| 归档时间: |
|
| 查看次数: |
2781 次 |
| 最近记录: |