Php 我的第一个递归函数本身调用不正确?
这段代码应该查找组的最高值,而不管有多少嵌套数组。我第一次尝试创建一个函数,它将在每次事件发生时调用自身,即值是一个数组。为什么说我的变量没有定义Php 我的第一个递归函数本身调用不正确?,php,arrays,Php,Arrays,这段代码应该查找组的最高值,而不管有多少嵌套数组。我第一次尝试创建一个函数,它将在每次事件发生时调用自身,即值是一个数组。为什么说我的变量没有定义 <?php $arr = array("1", "2", array("3", "4")); function getitMax($arr){ foreach ($arr as $value){ if(is_array($value)){ getitMax
<?php
$arr = array("1", "2", array("3", "4"));
function getitMax($arr){
foreach ($arr as $value){
if(is_array($value)){
getitMax($value);
} else {
$max_array=array($value);
}
}
}
getitMax($arr);
echo max($max_array);
?>
您的问题是您只是在此处调用函数:
if(is_array($value)){
getitMax($value);
}
-但对结果却无所作为。而且你的函数没有返回值,也就是说,结果将是空的。要解决此问题,请执行以下操作:
function getitMax($arr)
{
$max = null;
foreach($arr as $value)
{
if(is_array($value))
{
$current = getitMax($value);
}
else
{
$current = $value;
}
//assign max to current if current is larger:
if($current>$max)
{
$max = $current;
}
}
return $max;
}
尝试以下代码可能有点冗长:
<?php
class GetMax {
private $max_array = '';
public function getitMax($arr){
foreach ($arr as $value){
if(is_array($value)){
$this->getitMax($value);
} else {
$this->max_array[] = $value;
}
}
return max($this->max_array);
}
}
$m = new GetMax();
$arr = array("1", "2", array("3", "4"));
echo $m->getitMax($arr);
?>
您还没有发布任何代码。比我早4秒:)在函数中,您必须返回一些内容,并且在调用函数时必须将数据存储在某个位置。我想是的