2012-06-27 4 views
5
Array 
(
    [0] => Array 
     (
      [name] => A 
      [id] => 1 
      [phone] => 416-23-55 
      [Base] => Array 
       (
        [city] => toronto 
       ) 

      [EBase] => Array 
       (
        [city] => North York     
       ) 

      [Qty] => 1 
     ) 

(
    [1] => Array 
     (
      [name] => A 
      [id] => 1 
      [phone] => 416-53-66 
      [Base] => Array 
       (
        [city] => qing 
       ) 

      [EBase] => Array 
       (
        [city] => chong     
       ) 

      [Qty] => 2 
     ) 

) 

मैं प्रारूप के साथ "0, नाम, आईडी, फोन, बेस, शहर, eBase, मात्रा" सभी कुंजी मान कैसे मिल सकता है?कैसे php में बहु-आयामी सरणी में सभी प्रमुख पाने के लिए

धन्यवाद!

+3

की कोशिश करो। –

+0

आपको या तो सरणी में सभी कुंजियों को खोजने के लिए एक ब्रेडथ पहली खोज या गहराई पहली खोज करने की आवश्यकता होगी। इसे आसानी से करने के लिए आपको एक रिकर्सिव फ़ंक्शन का उपयोग करने की आवश्यकता होगी। – Cheesebaron

+0

उस सटीक सरणी के लिए '$ कुंजी = array_merge (array_keys ($ array), array_keys (वर्तमान ($ सरणी)); 'शायद यह होगा। लेकिन हम यह जानने के साथ कर सकते हैं कि आप इसे करने के लिए ** सर्वोत्तम ** तरीका पर सलाह प्रदान करने के लिए क्या कर रहे हैं ... – DaveRandom

उत्तर

11

एक foreach() पाश से आरंभ होने वाला विचार होगा इस

function array_keys_multi(array $array) 
{ 
    $keys = array(); 

    foreach ($array as $key => $value) { 
     $keys[] = $key; 

     if (is_array($value)) { 
      $keys = array_merge($keys, array_keys_multi($value)); 
     } 
    } 

    return $keys; 
} 
+0

यह बहुत अच्छा काम करता है! धन्यवाद! – aje

+0

यह बहुआयामी सरणी के लिए सही नहीं है। –

4

यदि आपको पता नहीं है कि सरणी का आकार क्या होने जा रहा है, तो फ़ोरैच लूप के साथ एक रिकर्सिव फ़ंक्शन का उपयोग करें जो प्रत्येक $ वैल एक सरणी है। यदि आप आकार जानते हैं, तो बस प्रत्येक आयाम के माध्यम से foreach और प्रत्येक से चाबियाँ रिकॉर्ड करें।

कुछ इस तरह:

<?php 
function getKeysMultidimensional(array $array) 
{ 
    $keys = array(); 
    foreach($array as $key => $value) 
    { 
     $keys[] = $key; 
     if(is_array($value)) { 
      $keys = array_merge($keys, getKeysMultidimensional($value)); 
     } 
    } 

    return $keys; 

} 
संबंधित मुद्दे