数据如下 :
$arr = [
[
'name' => 'Home',
'rule' => 'home',
'children' => [
[
'name' => 'index',
'rule' => 'index',
],
[
'name' => 'show',
'rule' => 'show',
]
],
],
[
'name' => 'File',
'rule' => 'file',
'children' => [
[
'name' => 'add',
'rule' => 'add',
],
[
'name' => 'edit',
'rule' => 'edit',
]
],
],
];
$rule = ['home', 'index', 'file', 'edit'];
目前我这样写,是有问题的,与期望的结果不符,
$collect = collect($arr)
->whereInStrict('rule', $rule)
->map(function ($value) use ($rule) {
return collect($value['children'])->whereInStrict('rule', $rule);
});
dump($collect->toArray());
打印出来的结果:
array:2 [▼
0 => array:1 [▼
0 => array:2 [▼
"name" => "index"
"rule" => "index"
]
]
1 => array:1 [▼
1 => array:2 [▼
"name" => "edit"
"rule" => "edit"
]
]
]
期望的结果应该为这样:
[
'name' => 'Home',
'rule' => 'home',
'children' => [
[
'name' => 'index',
'rule' => 'index',
]
],
],
[
'name' => 'File',
'rule' => 'file',
'children' => [
[
'name' => 'edit',
'rule' => 'edit',
]
],
],
请问这个该如何写呢?
摇曳的蔷薇