2010-03-10 37 views
6

讓我們假設我知道有關鍵「twoVal」,但我不知道它後面是什麼。我如何才能達到這個問題的下一個關鍵?我知道關鍵「twoVal」的位置?或者有另一種方法?進入數組中的下一個鍵

$arr = array('Cool Viski' => array('oneVal' => '169304', 
            'twoVal' => '166678', 
            'threeVal' => '45134')); 

回答

0

您可能會感興趣的各種array seeking functions除非PHP陣列由僅整數索引有沒有順序上的按鍵保證。

+0

從http://php.net/manual/en/language.types.array.php摘自:'PHP中的數組實際上是一個有序map.'我會說,這是一個保證按鍵的順序。 – Jasper 2012-11-06 16:31:02

+0

另外,這並不是解決給定問題的一種方法,因爲您首先需要使用已知密鑰來獲取指向元素的內部指針,而這無法有效地完成,就我所能看到的你正在鏈接到。 – Jasper 2012-11-06 16:34:34

17
$keys = array_keys($arr['Cool Viski']); 
$position = array_search('twoVal', $keys); 
if (isset($keys[$position + 1])) { 
    $keyAfterTwoVal = $keys[$position + 1]; 
} 
+0

這很聰明! – Nirmal 2010-03-10 02:39:29

+0

我認爲做任何OP都想做另一種方式比明智的數組操作更聰明,但它回答了這個問題。 :) – deceze 2010-03-10 02:41:31

+0

這正是我想要做的,而且非常乾淨。感謝分享這個。 – spyke01 2017-08-12 01:08:14

1
$arr = array('Cool Viski' => array('oneVal' => '169304', 
            'twoVal' => '166678', 
            'threeVal' => '45134')); 
foreach($arr as $s=>$v){ 
    foreach($v as $val){ 
     if(key($v) == "twoVal"){ 
      $t=next($v); 
      print "next key: ".key($v)."\n"; 
      print "next key value is: ".$t."\n";; 
     }else{ 
      next($v); 
     } 
    } 
} 
相關問題