如何从嵌套的foreach循环数组中获取值(按类别获取产品详细信息)?

时间:2017-08-07 06:52:00

标签: php arrays

我有一个很长的数组,我希望从中获取要显示的所有值  他们的php前端页面。我在数据库中有两个表。

  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
                                    )
                            )
                    )
            )
    
  3. 我无法使用以下代码获取此数组的值:

    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
    

1 个答案:

答案 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]";
    }
}