タイトルからわかるように簡単です。最後に挿入された項目のインデックス/キーを取得する必要があります。なぜこれが難しいのでしょうか? 次の 2 つのコード サンプルを参照してください。
$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>');
書き込み:
res=aaa - 0
res=bbb - 1
res=aaa - 2
Array (
[0] => aaa
[1] => bbb
[2] => aaa
)
確かに、それはうまく機能しているようですが、次の点に注意してください。
$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>');
書き込み:
res=aaa - 0
res=bbb - 1 <- wrong!
res=aaa - 2 <- wrong!
Array (
[0] => aaa
[2] => bbb <- real key
[3] => aaa <- real key
)
つまり、簡単に言えば、一般的な回避策にはcount($array)-1
欠陥があるということです。
ベストアンサー1
がここにあります線形(最速) 解決:
end($a);
$last_id=key($a);