PHP dizinin son eklenen öğenin dizinini almak

0 Cevap php

Başlık göründüğü kadar kolay; Ben son eklenen öğenin dizin / anahtarı almak gerekiyor. Neden bu kadar zor? Aşağıdaki iki kod örnekleri bakınız:

$a=array();
echo 'res='.($a[]='aaa').' - '.(count($a)-1).'<br>';
echo 'res='.($a[]='bbb').' - '.(count($a)-1).'<br>';
echo 'res='.($a[]='aaa').' - '.(count($a)-1).'<br>';
die('<pre>'.print_r($a,true).'</pre>');

Yazıyor:

res=aaa - 0
res=bbb - 1
res=aaa - 2
Array (
    [0] => aaa
    [1] => bbb
    [2] => aaa
)

Tabii ki iyi çalışır, ama bunu görmek gibi görünüyor:

$a=array();
echo 'res='.($a[]='aaa').' - '.(count($a)-1).'<br>';
echo 'res='.($a[2]='bbb').' - '.(count($a)-1).'<br>';
echo 'res='.($a[]='aaa').' - '.(count($a)-1).'<br>';
die('<pre>'.print_r($a,true).'</pre>');

Yazıyor:

res=aaa - 0
res=bbb - 1       <- wrong!
res=aaa - 2       <- wrong!
Array (
    [0] => aaa
    [2] => bbb    <- real key
    [3] => aaa    <- real key
)

Yani kısacası, popüler çözüm count($array)-1 kusurludur.

0 Cevap