2009-12-02 14 views
80

मैं बहु-आयामी सरणी प्राप्त करने के लिए यह डीबी कॉल चला रहा हूं, मैं प्रत्येक की चाबियाँ प्राप्त करने की कोशिश कर रहा हूं लेकिन जब मैं कोशिश करता हूं तो यह खाली या सरणी के रूप में आता है।PHP फोरैच लूप कुंजी मान

$root_array = array(); 
$sites = $this->sites($member_id); 
foreach ($sites as $site){ 
    $records = $this->db->select('p.name as place_name, p.id as place_id,p.active as place_status') 
       ->from('places p') 
       ->join('members_permissions pm','pm.sites_id = p.sites_id and pm.members_id ='.$member_id) 
       ->where('p.active', 0) 
       ->get(); 

    $places = $records->result_array(); 
    $places['name'] = $site['name']; 
    foreach($places as $place){ 
     $root_array[$site['name']][] = $place; 
    } 

} 
return $root_array; 

यहाँ मेरी php कि के माध्यम से लूप है:

<?php foreach($places as $site): ?> 
    <h5><?=key($site)?></h5> 
     <?php foreach($site as $place): ?> 
      <h6><?=$place['place_name']?></h6> 
     <?php endforeach?> 

<?php endforeach ?> 

इसके अलावा जब मैं एक परीक्षण है जो सिर्फ सरणी इस परिणाम है बाहर थूक चलाने के लिए, [फिलाडेल्फिया क्या मैं रेंडर करने के लिए कोशिश कर रहा हूँ है ]

[Philadelphia] => Array 
     (
      [0] => Array 
       (
        [place_name] => XYX 
        [place_id] => 103200 
        [place_status] => 0 
       ) 

      [1] => Array 
       (
       [place_name] => YYYY 
       [place_id] => 232323 
       [place_status] => 0 
      ) 

उत्तर

229

तुम इतनी तरह अपने सरणी कुंजी का उपयोग कर सकते हैं:

foreach ($array as $key => $value) 
+0

यह विधि केवल 'सरणी' – matthewb

+0

देता है, यदि आप $ कुंजी गूंजते हैं? नाह। यदि आप इसे सरणी पर नहीं चलाते हैं तो 'फिलाडेल्फिया' की कुंजी है। क्या आप कुछ कोड दिखा सकते हैं? –

+0

यह काम करता है, मेरे mysql कथन में मामूली समस्या भी थी, लेकिन मुझे यह आपके समाधान के साथ काम कर रहा है, धन्यवाद। – matthewb

18

रूप पेका ऊपर

foreach ($array as $key => $value) 

कहा इसके अलावा, आप एक पुनरावर्ती समारोह

displayRecursiveResults($site); 

function displayRecursiveResults($arrayObject) { 
    foreach($arrayObject as $key=>$data) { 
     if(is_array($data)) { 
      displayRecursiveResults($data); 
     } elseif(is_object($data)) { 
      displayRecursiveResults($data); 
     } else { 
      echo "Key: ".$key." Data: ".$data."<br />"; 
     } 
    } 
} 
5
foreach($shipmentarr as $index=>$val){  
    $additionalService = array(); 

    foreach($additionalService[$index] as $key => $value) { 

     array_push($additionalService,$value); 

    } 
} 
5

तुम भी array_keys() उपयोग कर सकते हैं की कोशिश करना चाहते हो सकता है। न्यूबी दोस्ताना:

$keys = array_keys($arrayToWalk); 
$arraySize = count($arrayToWalk); 
for($i=0;$i<$arraySize;$i++){ 
    echo "<option value=\"".$keys[$i]."\">".$arrayToWalk[$keys[$i]]."</option>"; 
} 
संबंधित मुद्दे