我有一个数组解析函数,它在值中查找部分单词匹配。我如何使它递归,使它适用于多维数组?
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..
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;
}
你需要用一个数组来重载你的函数。
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;
}
这些解决方案并不是我真正想要的。这可能是一个错误的函数,所以我创建了另一个问题,以更一般的方式表达问题。
在数组中搜索部分值匹配