在PHP中迭代一个数组而不使用count和sizeof函数

时间:2014-09-17 03:47:54

标签: php arrays

我的任务是创建一个名为' maximum'这将在给定的一组数字中找到最大值。我的函数应返回最大数字。

要求:

我的功能不应该使用' sizeof'或者'计算'计算数组中元素数量的函数。 我该怎么做?这是我的PHP函数:

function maximum($array){

    $elements = count($array);
    $max = $array[0];
    for($a=1; $a < $elements; $a++){
        if ($max < $array[$a]){
            $max =  $array[$a];
        }
    }

    return $max;
} 

5 个答案:

答案 0 :(得分:0)

$max = $array[0];
foreach ($array as $value) {
    if ($max < $value){
        $max =  $value;
    }
}

答案 1 :(得分:0)

function maximum($array) {
  $max = 0;
  foreach($array as $value) { // get every value of array
    if($max < $value) // if value of array is bigger then last one
      $max = $value; // put it into $max
  }
  return $max;
}

答案 2 :(得分:0)

使用内置功能:

$max = max($array);

使用foreach:

$max = 0;
foreach ( $array as $item ) {
    if ( $max<$item ) {
        $max = $item;
    }
}

使用排序功能:

rsort($array);
$max = array_shift($array);

sort($array);
$max = array_pop($array);

答案 3 :(得分:0)

您可以通过max()

执行此操作
echo max($array);

答案 4 :(得分:-2)

function counter(array $arr)
{
    $i = 0;
    $counter = 0;
    while ($arr) 
    {
        if(!isset($arr[$i]))
        {
            break;
        }
        $counter++;
        $i++;
    }
    return $counter;
}

$arr = range(1,10);
echo counter($arr); //prints 10 and works for numeric array

$counter = 0;
$arr = [0,1,3,4];
foreach ($arr as $value) 
{
    $counter++;
}

echo $counter; //prints 4 and works for both numeric and associative array