【发布时间】:2016-09-09 20:59:48
【问题描述】:
$array = ["farm"=>
[
"horse"=>
[
"rabbit"=>
[
"fred1"=> "fred1",
"fred2"=> "fred2",
"fred3"=> "fred3",
"fred4"=> "fred4"
],
"raccoon"=>
["frida"=> "frida"]
]
]
];
我想为每个循环创建一个数组:
$keySearch = "o";
function createList($array, $keySearch, $path) {
foreach ($array as $key => $item) {
$basePath = $path === null ? $key : $path. "/" . $key;
if(is_array($item)){
if (stripos($key, $keySearch) !== false){
$a['key'] = $key ;
$b['basePath'] = $basePath;
$result[] = array_merge_recursive ($a, $b);
}
createList($item, $keySearch, $basePath);
}
}
print_r($result);
}
createList($array, $keySearch, '');
我的结果是:
Array
(
[0] => Array
(
[key] => horse
[basePath] => farm/horse
)
)
Array
(
[0] => Array
(
[key] => raccoon
[basePath] => farm/horse/raccoon
)
)
我真正期望的是:
Array
(
[0] => Array
(
[key] => horse
[basePath] => farm/horse
)
[1] => Array
(
[key] => raccoon
[basePath] => farm/horse/raccoon
)
)
【问题讨论】:
-
你的预期输出有什么区别?
-
@splash58 我的输出是两个数组,但我只需要一个数组
-
什么是 $keySearch ?
-
这里是
$keySearch = "o" -
为什么 john 不在结果中?
标签: php arrays multidimensional-array associative-array