2011-09-20 7 views

答えて

21

これは動作します:

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] 
+4

配列の唯一の要素を得るための 'list'アプローチの代わりに、' $ end = current(array_slice($ array、-1)); –

+0

はい、素敵な1つが答えに追加されました – arnaud576875

+0

クールな感謝。私は、私が見つけていない機能やアプローチがあることを期待していました。 – Joren

2

reset()tingについてあなたはend()を使用した後、何のErm ...?

$lastItem = end($myArr); 
reset($myArr); 
+1

内部ポインタを変更し、OPが内部ポインタを変更したくないと思われるためですか? :) – arnaud576875

+0

@arnaud私はそれがポインタをリセットすることは知っているが、少なくともそれはデフォルトである冒頭に置く。あなたのソリューションは、まったくリセットしないほうが適切です。 –

-4
end($my_array); 

私は内部ポインタを変更することで、悪い何も表示されません。誰もがこれらの日にそれを使用していないとにかく

+6

もう一度質問を読まずに皮肉な答えをしてください。あなたは本当にこれをやめるべきです。 –

+0

あなたはそれが最速の銃問題、笑を知っています。私はまだ質問の中で、 –

+0

@アリンを通してそれを読んだ後でも、何の問題も見当たりません。何が問題なのですか?ゲームに遅れても、それは有効な答えであり、それは不十分な機能です。 –

0

残念ながら

list($end) = array_slice($array, -1); 

は連想配列では動作しません。だから私は、*最後に何があるか、

function pop_array_nondestructive($array) 
    { 
    return end($array); 
    } 
0
<?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]; 
} 
?> 
関連する問題