多次元配列をトラバースする以下のphp検索スクリプトがあります。$value が見つかった場合はそれを返しますが、アドレスも返したいです (2 レベルしかないと考えて)
function arr_search($array, $line, $lvl=0)
{
// Loops through each element. If element again is array, function is recalled. If not, result is echoed.
foreach($array as $key=>$value)
{
if(is_array($value))
{
arr_search($value, $line);
}else{
if(strpos($line, $value))
echo "found $key: $value\n";
// return $value; // should return array with [?],[$key],[$value]
}
}
return false;
}
$key は、見つかった最新の配列のアドレスであることがわかります。しかし、親配列のインデックスが必要です。
配列の例:
Array
(
[0] => Array
(
[0] => string324
[1] => string234
[2] => string7567
[3] => stringw34
)
[1] => Array
(
[0] => string4563
[1] => string37
)
[2] => Array
(
[0] => string3735
[1] => string3563
[2] => string3563
[3] => string356
[4] => string356
)
)