2010-03-10 15 views
6

मान लें कि मुझे पता है कि "दोवल" कुंजी है, लेकिन मुझे नहीं पता कि उसके बाद क्या है। मैं उस मामले के लिए अगली कुंजी कैसे प्राप्त करूं? जोर से मैं कुंजी "दो वैल" की स्थिति पता है? या चारों ओर एक और रास्ता है?एक सरणी में अगली कुंजी प्राप्त करना

$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

+0

इसके अलावा, यह वास्तव में दिए गए समस्या को हल करने का एक तरीका नहीं है, यह देखते हुए कि आपको पहले ज्ञात कुंजी के साथ तत्व में आंतरिक सूचक प्राप्त करने की आवश्यकता होगी, जिसे कुशलता से किया जा सकता है, जहां तक ​​मैं देख सकता हूं आप से जुड़ रहे हैं – Jasper

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

यह बुद्धिमान है! – Nirmal

+0

मुझे लगता है कि ओपी किरकिरा सरणी हेरफेर की तुलना में एक और तरीका करने की कोशिश कर रहा है, लेकिन यह सवाल का जवाब देता है। :) – deceze

+0

यह वही है जो मैं करने की कोशिश कर रहा था और इतना क्लीनर। इसे साझा करने के लिए धन्यवाद। – spyke01

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); 
     } 
    } 
} 
संबंधित मुद्दे