Как получить длину самой длинной строки в массиве

Скажем, у меня есть этот массив:

$array[] = 'foo'; $array[] = 'apple'; $array[] = '1234567890; 

Я хочу получить длину самой длинной строки в этом массиве. В этом случае самая длинная строка – 1234567890 а ее длина – 10.

Возможно ли это, если цикл не проходит через массив и не проверяет каждый элемент?

пытаться

 $maxlen = max(array_map('strlen', $ary)); 

Конечно:

 function getmax($array, $cur, $curmax) { return $cur >= count($array) ? $curmax : getmax($array, $cur + 1, strlen($array[$cur]) > strlen($array[$curmax]) ? $cur : $curmax); } $index_of_longest = getmax($my_array, 0, 0); 

Нет петли. 😉

Прокрутите массивы и используйте strlen чтобы проверить, является ли текущая длина длиннее предыдущей .. и сохраните индекс самой длинной строки в переменной и используйте ее позже, где вам нужен этот индекс.

Что-то вроде этого..

 $longest = 0; for($i = 0; $i < count($array); $i++) { if($i > 0) { if(strlen($array[$i]) > strlen($array[$longest])) { $longest = $i; } } }