2017-08-07 4 views
0

私はすべての値をフェッチして、それらのPHPフロントエンドページ を表示するための長い配列を持っています。私はデータベースに2つのテーブルを持っています。ネストされたforeachループ配列から値を取得する方法(製品の詳細をカテゴリ別に取得する)?

  1. カテゴリ - cat_id、cat_name;
  2. リストアイテムの商品 - pro_id、cat_id、 cat_name、pro_name、price;私はこのコードを使用することで、この配列の値を取得することができません

    Array([0] => Array (
          [3] => Array([cat_id] => 3 
            [cat_name] => Mobile Phones 
            [product] => Array(
              [26] => Array(
                [pro_id] => 26 
                [pro_name] => iPhone 7 
                [price] => 70000 
               ) 
              [25] => Array(
                [id] => 25 
                [pro_name] => iPhone 6 
                [price] => 60000 
               )       
             ) 
           ) 
         ) 
    
        [1] => Array(
          [5] => Array([id] => 5 
            [name] => Software 
            [product] => Array(
              [21] => Array(
                [id] => 21 
                [pro_name] => Lorem Ipsum is simply 
                [price] => 5000 
               ) 
              [11] => Array 
               (
                [id] => 11 
                [pro_name] => Lorem Ipsum is simply 
                [price] => 10000 
               ) 
             ) 
           ) 
         ) 
    [2] => Array([4] => Array([id] => 4 
            [name] => Accessories 
            [product] => Array(
              [20] => Array(
                [id] => 20 
                [pro_name] => japan 
                [price] => 40000 
               ) 
             ) 
           ) 
         ) 
    

私の配列を以下に示す

if(!empty($product)){ 
      foreach($product as $catname){ 
       echo $catname['cat_name']; 
       echo "<br>"; 
       foreach($product[] as $detail=> $row { 
        echo $row['product_id']; 
        echo $row['pro_name']; 
        echo $row['price'];   
       } 

その示すエラー。しかし、私はこのような出力たい:

Mobile Phones 
    26 
    iPhone 7 
    70000 

    25 
    iPhone 6 
    60000 


Software 
    21 
    Lorem Ipsum is simply 
    5000 

    11 
    Lorem Ipsum is simply 
    10000 


Accessories 
    20 
    japan 
    40000 
+0

は、あなたの代わりに、アレイ出力の配列の値にそれを置くだろうか?インデントがあまり明確でないときはトレースするのが難しい – smzapp

+0

あなたの配列に 'id'の代わりに' cat_id'または 'pro_id'があるのはなぜですか? – iArcadia

+0

申し訳ありませんが間違って入力されました...修正されました –

答えて

0

は簡単に、これだけの機能を使用することができます。

function array_echo($array , $indent = 0) 
{ 

    foreach($array as $k=>$v) 
    { 
     echo "<br />"; 
     for($i=0; $i<$indent; $i++) 
      echo "&emsp;&emsp;"; 
     if(is_array($v)) 
     { 
      echo "[$k] => "; 
      array_echo($v, ($indent+1)); 
     } 
     else 
      echo "[$k] => [$v]"; 
    } 
} 
関連する問題