Jak w PHP uzyskać najwyższy klucz / indeks w tablicy? Wiem, jak to zrobić dla wartości.
Np. Z tej tablicy chciałbym otrzymać „10” jako wartość całkowitą:
$arr = array( 1 => "A", 10 => "B", 5 => "C" );
Wiem, jak mógłbym to zaprogramować, ale zadawałem sobie pytanie, czy istnieje również funkcja do tego.
max
:If an empty array is passed, then FALSE will be returned and an E_WARNING error will be emitted.
Możesz uzyskać maksymalny klucz w ten sposób:
<?php $arr = array("a"=>"test", "b"=>"ztest"); $max = max(array_keys($arr)); ?>
źródło
$keys = array_keys($arr); $keys = rsort($keys); print $keys[0];
powinien wydrukować „10”
źródło
Miałem sytuację, w której potrzebowałem uzyskać następny dostępny klucz w tablicy, czyli najwyższy + 1.
Na przykład, jeśli tablica to $ data = ['1' => 'coś, '34' => 'coś innego'], musiałem obliczyć 35, aby dodać nowy element do tablicy, który miał klucz wyższy niż jakikolwiek inny innych. W przypadku pustej tablicy potrzebowałem 1 jako następnego dostępnego klucza.
Oto rozwiązanie, które zadziałało:
$highest = 0; foreach($data as $idx=>$dummy) { if($idx > $highest)$highest=$idx; } $highest++;
Będzie działać we wszystkich przypadkach, pusta tablica lub nie. Jeśli potrzebujesz tylko znaleźć najwyższy klawisz, a nie najwyższy klawisz + 1, usuń ostatnią linię. Otrzymasz wtedy wartość 0, jeśli tablica jest pusta.
źródło
Wypróbuj max (): http://php.net/manual/en/function.max.php Zobacz pierwszy komentarz na tej stronie
źródło