Bir dizide en uzun dize uzunluğu almak nasıl

4 Cevap php

Ben bu dizi var diyelim:

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

Ben bu dizide uzun dize uzunluğunu almak istiyorum. Bu durumda en uzun dize 1234567890 ve uzunluğu 10.

Bu dizi döngü ve her elemanını kontrol olmadan mümkün mü?

4 Cevap

denemek

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

Sure:

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);

Hiçbir döngü. ;-)

Diziler döngü ve strlen geçerli uzunluğu daha uzun bir önceki günden ise .. doğrulamak ve bir değişken olarak uzun dize indeksi kaydetmek ve bu indeksine ihtiyaç yere daha sonra kullanmak için kullanabilirsiniz.

Bu gibi bir şey ..

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

Öğesi bir nesne nasıl olur?

a[0]={a='abc',b='xyz',c=1}
a[1]={a='def',b='this is it!',c=10} etc

ve uzun "b" kaleminin uzunluğunu istiyorsun? Bu almak için herhangi bir serin hileler? Şu anda döngü ediyorum.