我有一个数组解析函数,用于查找值中的部分字匹配。如何使其递归,以便它适用于多维数组?
function array_find($needle, array $haystack)
{
foreach ($haystack as $key => $value) {
if (false !== stripos($needle, $value)) {
return $key;
}
}
return false;
}
数组我需要搜索
array(
[0] =>
array(
['text'] =>'some text A'
['id'] =>'some int 1'
)
[1] =>
array(
['text'] =>'some text B'
['id'] =>'some int 2'
)
[2] =>
array(
['text'] =>'some text C'
['id'] =>'some int 3'
)
[3] =>
array(
['text'] =>'some text D'
['id'] =>'some int 4'
)
etc..
答案 0 :(得分:2)
function array_find($needle, array $haystack)
{
foreach ($haystack as $key => $value) {
if (is_array($value)) {
return $key . '->' . array_find($needle, $value);
} else if (false !== stripos($needle, $value)) {
return $key;
}
}
return false;
}
答案 1 :(得分:1)
你想用数组测试重载你的函数......
function array_find($needle, array $haystack)
{
foreach ($haystack as $key => $value) {
if (is_array($value)) {
array_find($needle, $value);
} else {
if (false !== stripos($needle, $value)) {
return $key;
}
}
}
return false;
}
答案 2 :(得分:0)
这些解决方案并不是我想要的。这可能是错误的功能,因此我创建了另一个以更一般化的方式表达问题的问题。