PHP son eklenen dizi öğesinin anahtarını almanın en iyi yöntemi nedir?

4 Cevap php

Aşağıdakileri yapmak için daha iyi bir yolu var mı:

$array = array('test1', 'test2', 'test3', 'test4', 'test5');
// do a bunch of other stuff, probably a loop
$array[] = 'test6';
end($array);
echo key($array); // gives me 6

Bu en son eklemek dizi elemanın anahtarını verecektir.

Bunu yapmak için daha iyi bir yolu var mı?

4 Cevap

Ayrıca yapabilirdi:

$end = end(array_keys($array));

Ama yolunuzu açık ne yapmak istiyorum yapar düşünüyorum, bu yüzden gibi bir şey kırbaç olabilir:

function array_last_key($array) {
    end($array);
    return key($array);
}

İşte bu kadar.

Orada PHP bunun için özel bir fonksiyon, yani yolunuzu bunu yapmanın en verimli yol olduğunu düşünüyorum. Okunabilmesi için size array_last_key gibi bir şey () adlı bir işlev koymak isteyebilirsiniz.

Eğer dizi olmayan herhangi bir sayısal tuşları var olmayacağını garanti edemez ve herhangi anahtarlarını silme olacak değil ki, o son unsur dizinin anahtarına eklenir eğer olacaktır

$last_added = count($array)-1;

Eğer gerçekten son eklenen anahtarın takip etmek gerekiyorsa, benzersiz olmasını garanti kendi tuşları ile gelip bir program ile gelip isteyebilirsiniz. Eğer oluşturulan beri bu şekilde her zaman son eklenen anahtarı olacak.

$array = array('test1', 'test2', 'test3', 'test4', 'test5');
// do a bunch of other stuff, probably a loop
$new_key = generate_key();
$array[$new_key] = 'test6';
echo $new_key; // gives me blahblahfoobar123

Basitçe hayır koydu. Sonu ve anahtar Hem Big O (1) zaman vardır. Başka bir şekilde aşağı kodunuzu yavaşlatır ve karmaşıklık ekler.