2011-03-29 77 views
38

的最後3個元素我有一個數組:PHP獲取數組

[13] => Array 
     (
      [0] => joe 
      [1] => 0 

    [14] => Array 
     (
      [0] => bob 
      [1] => 0 
     ) 

    [15] => Array 
     (
      [0] => sue 
      [1] => 0 
     ) 

    [16] => Array 
     (
      [0] => john 
      [1] => 0 
     ) 

    [17] => Array 
     (
      [0] => harry 
      [1] => 0 
     ) 

    [18] => Array 
     (
      [0] => larry 
      [1] => 0 
     ) 

我怎樣才能獲得最後3個元素,同時保留了鑰匙? (數組中的元素的數量可能會有所不同,所以我不能在第二個元素後只需快訊)

所以輸出將是:

[16] => Array 
     (
      [0] => john 
      [1] => 0 
     ) 

    [17] => Array 
     (
      [0] => harry 
      [1] => 0 
     ) 

    [18] => Array 
     (
      [0] => larry 
      [1] => 0 
     ) 

回答

84

,您可以在真正的傳遞作爲第四個參數:

array_slice($a, -3, 3, true); 
+2

謝謝!不知道array_slice()有第四個參數。 – alex 2011-03-29 06:59:36

4

您可以使用array_slice與作爲-3偏移,所以你不要」不必擔心陣列長度,也可以將preserve_keys參數設置爲TRUE

$arr = array_slice($arr,-3,3,true);            
27

使用array_slice

$res = array_slice($array, -3, 3, true); 
+0

這不會保留鍵,它將重置從0開始的鍵 – alex 2011-03-29 06:58:05

+0

@alex更新了我的答案,謝謝修復。 – fabrik 2011-03-29 06:59:28

-3

您可以使用array_slice():如果您想保留關鍵

<?php 
    // -3 = start from the end 
    // true = preserve_keys 
    $result = array_slice($array, 0, -3, true); 
?> 
+0

這不會做什麼要求。第三個參數的負整數意味着「在數組結束之前停止這麼多元素」。這將返回前n-3個元素,其中n是數組中元素的總數。 – tremby 2015-09-30 00:52:59