Я тестирую рекурсивный скрипт PHP. Но ассоциативный массив, начинающийся с ключа «items», возвращает ошибку T_DOUBLE_ARROW. Нужно ли использовать скобки для этой части? Ключ «method» — это слой внутри ключей «items». Может кто-нибудь подсказать мне, как я могу исправить эту ошибку? Функция find_in_arr отлично работает при вызове ключей name, subject и type. Но когда дело доходит до предметов, я получаю ошибку.
<?php
function find_in_arr($key, $arr)
{
foreach ($arr as $k => $v)
{
if ($k == $key)
{
return $v;
}
if (is_array($v))
{
foreach ($v as $_k => $_v)
{
if ($_k == $key)
{
return $_v;
}
}
}
}
return false;
}
$arr =
array(
"name" => "Php Master",
"subject" => "Php",
"type" => "Articles",
"items" => ("one" => "Iteration","two" => "Recursion",
"methods" => ("factorial" => "Recursion","fibonacci" => "Recursion"),)
"parent"? => "Larry Ullman",
);
var_dump
(
find_in_arr('two', $arr),
find_in_arr('parent', $arr),
find_in_arr('fibonacci', $arr)
//find_in_arr('name', $arr),
//find_in_arr('subject', $arr),
//find_in_arr('type', $arr)
);
Так должно быть:
$arr = array(
"name" => "Php Master",
"subject" => "Php",
"type" => "Articles",
"items" => array(
"one" => "Iteration",
"two" => "Recursion",
"methods" => array(
"factorial" => "Recursion",
"fibonacci" => "Recursion")
),
"parent" => "Larry Ullman");
Других решений пока нет …