array_pop()は配列からそれを削除します。 end()は内部ポインタを変更します。PHPの配列を変更せずに配列の最後の要素を取得しますか?
$my_array[array_pop(array_keys($my_array))];
:
は次のように実際にいくつかのcludge唯一の方法ですか?
array_pop()は配列からそれを削除します。 end()は内部ポインタを変更します。PHPの配列を変更せずに配列の最後の要素を取得しますか?
$my_array[array_pop(array_keys($my_array))];
:
は次のように実際にいくつかのcludge唯一の方法ですか?
これは動作します:
list($end) = array_slice($array, -1);
array_slice($array, -1)
は、ちょうど最後の要素を持つ配列を返し、list()
は$end
に、スライスの結果の最初の要素を割り当てます。
@Alin Purcaruはコメントで、このいずれかを示唆した。
$end = current(array_slice($array, -1));
をPHP 5.4から、これはあまりにも動作します:
array_slice($array, -1)[0]
配列の唯一の要素を得るための 'list'アプローチの代わりに、' $ end = current(array_slice($ array、-1)); –
はい、素敵な1つが答えに追加されました – arnaud576875
クールな感謝。私は、私が見つけていない機能やアプローチがあることを期待していました。 – Joren
reset()
tingについてあなたはend()
を使用した後、何のErm ...?
$lastItem = end($myArr);
reset($myArr);
内部ポインタを変更し、OPが内部ポインタを変更したくないと思われるためですか? :) – arnaud576875
@arnaud私はそれがポインタをリセットすることは知っているが、少なくともそれはデフォルトである冒頭に置く。あなたのソリューションは、まったくリセットしないほうが適切です。 –
end($my_array);
私は内部ポインタを変更することで、悪い何も表示されません。誰もがこれらの日にそれを使用していないとにかく
もう一度質問を読まずに皮肉な答えをしてください。あなたは本当にこれをやめるべきです。 –
あなたはそれが最速の銃問題、笑を知っています。私はまだ質問の中で、 –
@アリンを通してそれを読んだ後でも、何の問題も見当たりません。何が問題なのですか?ゲームに遅れても、それは有効な答えであり、それは不十分な機能です。 –
残念ながら
list($end) = array_slice($array, -1);
は連想配列では動作しません。だから私は、*最後に何があるか、
function pop_array_nondestructive($array)
{
return end($array);
}
<?php
/**
* Return last element from array without removing that element from array.
* https://github.com/jdbevan/PHP-Scripts/
*
* @param array $array The array to get the last element from
* @return mixed False if $array is not an array or an empty array, else the key of the last element of the array.
*/
function array_peek($array) {
if (!is_array($array)) return false;
if (count($array)<1) return false;
$last_key = array_pop(array_keys($array));
return $array[$last_key];
}
?>
が公正であるために*あなたの鍵に基づいて任意で使用します。 –