【发布时间】:2018-12-28 17:20:34
【问题描述】:
$printArr = recursive($newArray); //calls recursive function
$data = [];
var_dump($data);
var_dump($printArr);
function recursive($array, $level = 0)
{
$searchingValue = 'tableName';
foreach($array as $key => $value)
{
//If $value is an array.
if(is_array($value))
{
recursive($value, $level + 1);
}
else
{
//It is not an array, so print it out.
if($key == $searchingValue)
{
echo "[".$key . "] => " . $value, '<br>';
$data[] = $value;
}
}
}
}
所以我有这个函数,我试图将 $value 值保存到 $data[] 数组中。但它总是将它返回为空,我不知道为什么我不能在函数之外保存 $value。 如果我 echo $value 我得到了我需要的东西,但就像我提到的那样,在这种情况下变量不会被保存 - 表名。
【问题讨论】:
-
你有没有在任何地方调用过
recursive()函数?或者只是声明并打印了$data数组,该数组已经为空。 -
$level的作用是什么? -
你能解释一下你写的函数的目标吗?
-
或者甚至显示一些示例输入以及实际输出和预期输出
-
是的,我做到了。 $printArr = 递归($newArray); //调用递归函数 $data = []; var_dump($data); var_dump($printArr);我也在问题代码中添加了。
标签: php arrays loops recursion multidimensional-array