2017-07-05 19 views
-2

この配列をどのように反復処理できますか?あなたがいることをしたい場合は簡単な言葉でループPHPの3次元配列

$t = array(
    'grn_id' => array(
    'status_id' => array(1, 2, 3, 4) 
) 
) 
+2

あなたがこのことから期待している何を出力?また、完全な配列を見せてください。 –

+0

'foreach'ループはネストされていますか? –

+0

ouptut = 1 2 3 4 –

答えて

0

の構文は、あなたが得ることができます:あなたは、各反復で1, 2, 3, 4を取得します

foreach ($t["grn_id"]["status_id"] as $statusId) 
    echo $statusId; 

foreach ($t["grn_id"] as $grn) { 
    foreach ($grn as $statusId) { 
    echo $statusId; 
    } 
} 
+0

私は 'status_id'のような多くのキーを置くと、すべての 'status_id'キーにアクセスしたり出力したりすることができますか? –

+0

「status_id」と「status_id2」の2つがありますか? – Andreas

+0

はい、これらを印刷したいのですが... –

0

おそらくrecursive iteratorがお探しですか?

あなたは一例与え確認することができます。

<?php 
$myArray = array( 
    0 => 'a', 
    1 => array('subA','subB',array(0 => 'subsubA', 1 => 'subsubB', 2 => array(0 => 'deepA', 1 => 'deepB'))), 
    2 => 'b', 
    3 => array('subA','subB','subC'), 
    4 => 'c' 
); 

$iterator = new RecursiveArrayIterator($myArray); 
iterator_apply($iterator, 'traverseStructure', array($iterator)); 

function traverseStructure($iterator) { 

    while ($iterator -> valid()) { 

     if ($iterator -> hasChildren()) { 

      traverseStructure($iterator -> getChildren()); 

     } 
     else { 
      echo $iterator -> key() . ' : ' . $iterator -> current() .PHP_EOL;  
     } 

     $iterator -> next(); 
    } 
} 
?> 

、出力は次のとおりです。

0 : a 
0 : subA 
1 : subB 
0 : subsubA 
1 : subsubB 
0 : deepA 
1 : deepB 
2 : b 
0 : subA 
1 : subB 
2 : subC 
4 : c 
+0

リンクのみの回答は通常好きではありません。代わりにここにリンクしたい部分をコピーしてください。 – Andreas