如何从PHP 4.0的数组中返回最长的字符串?我尝试了max函数,但似乎抛出了一个异常


How can I return the longest string from an array in PHP 4.0 ? I tried the max funcion but seems to throw an exception

我想在php 4.0中返回数组中最长的字符串,我的示例代码看起来像这样。

$MyArray=Array("Jane","Magdalene","Bull fighting champion","cruising","Tommy Lee Jones","View","axe");
$largest = max($MyArray); 
echo $largest.
$longest = $MyArray[0];
foreach( $MyArray as $str ) {
  if ( strlen( $str ) > strlen( $longest ) ) {
    $longest = $str;
  }
}

max()是给出一个整数列表的最大值。不幸的是,你的问题更复杂。

<?php
$MyArray=Array("Jane","Magdalene","Bull fighting champion","cruising","Tommy Lee Jones","View","axe");
$maxlen = 0;
$idx = -1;
for ($i=count($MyArray); $i; $i--) {
    $len = strlen($MyArray[$i-1]);
    if ($len > $maxlen) {
        $maxlen = $len;
        $idx = $i-1;
    };
}
if ($idx >0) {
    echo $MyArray[$idx];
}

你可以试试:

$lengths = array();
for($i=0; $i<count($MyArray); $i++) {
    $lengths[$myArray[$i]] = strlen($MyArray[$i]);
}
arsort($lengths);
echo key($lengths);

以及没有手动循环的精简版:

$array = array_combine($array, array_map("strlen", $array));
arsort($array);
print key($array);