Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将关联数组打印到表中_Php_Html_Arrays_Html Table_Associative Array - Fatal编程技术网

Php 将关联数组打印到表中

Php 将关联数组打印到表中,php,html,arrays,html-table,associative-array,Php,Html,Arrays,Html Table,Associative Array,我有一个这样的关联数组,我想用这些数据生成一个表,比如早餐、零食、午餐、晚餐。下面是我尝试过的代码,但是我在哪里中断表行,因为数组包含多个项。我想将关联数组打印到表中 *--------------------------------------------------* | **Breakfast Snacks Lunch Supper Dinner** | | test test test testfrom |testfrom

我有一个这样的关联数组,我想用这些数据生成一个表,比如早餐、零食、午餐、晚餐。下面是我尝试过的代码,但是我在哪里中断表行,因为数组包含多个项。我想将关联数组打印到表中

*--------------------------------------------------*
| **Breakfast   Snacks  Lunch   Supper   Dinner**  |
| test          test            test     testfrom
|testfrom
*--------------------------------------------------*
数组输出如下

    Array
(
    [meal_plan_id] => 17
    [calorie_limit] => 1
    [total_calorie] => 0
    [date] => 2017-12-29
    [meal_plan] => Array
        (
            [0] => Array
                (
                    [meal_type] => bf
                    [label] => Breakfast
                    [calorie_limit] => 30
                    [total_calorie] => 0
                    [data] => Array
                        (
                            [0] => Array
                                (
                                    [id] => 107
                                    [label] => test
                                    [quantity] => 10
                                    [unit] => g
                                    [status] => bf
                                )

                            [1] => Array
                                (
                                    [id] => 109
                                    [label] => testfrom
                                    [quantity] => 12
                                    [unit] => g
                                )

                        )

                )

            [1] => Array
                (
                    [meal_type] => sn
                    [label] => Snacks
                    [calorie_limit] => 10
                    [total_calorie] => 0
                    [data] => Array
                        (
                            [0] => Array
                                (
                                    [id] => 108
                                    [label] => test
                                    [quantity] => 121
                                    [unit] => g
                                )

                        )

                )

            [2] => Array
                (
                    [meal_type] => lu
                    [label] => Lunch
                    [calorie_limit] => 20
                    [total_calorie] => 0
                    [data] => Array
                        (
                            [0] => Array
                                (
                                    [status] => su
                                )

                        )

                )

            [3] => Array
                (
                    [meal_type] => su
                    [label] => Supper
                    [calorie_limit] => 30
                    [total_calorie] => 0
                    [data] => Array
                        (
                            [0] => Array
                                (
                                    [status] => sn
                                )

                            [1] => Array
                                (
                                    [id] => 116
                                    [label] => test
                                    [quantity] => 200
                                    [unit] => oz
                                )

                        )

                )

            [4] => Array
                (
                    [meal_type] => dn
                    [label] => Dinner
                    [calorie_limit] => 20
                    [total_calorie] => 0
                    [data] => Array
                        (
                            [0] => Array
                                (
                                    [id] => 113
                                    [label] => test500
                                    [quantity] => 20
                                    [unit] => oz
                                    [status] => dn
                                )

                        )

                )

        )

)
下面是我尝试过的代码

// $daily_meals = show_daily_meals() // contains the array 
    if(!empty($daily_meals['meal_plan'])){

         echo '<tr>';
        foreach($daily_meals['meal_plan'] as $meal_plan){      

             foreach ($meal_plan['data'] as $data){

                if(!empty($data['id']))
                    echo '<td class="'.$meal_type.'" data-meals-id="'.$data['id'].'"><span class="left">'.$data['label'].'</span> <span class="right">'.$data['quantity'].' <a class="delete_row"><i class="fa fa-trash" aria-hidden="true"></i></a></span><div class="row_loader"></div></td>';

               else echo '<td></td>'; 
            }

            $i++;
            if($i%5 == 0) echo '</tr>';
        }  

    }
//$daily\u fines=show\u daily\u fines()//包含数组
如果(!空($daily_Founds['Found_plan'])){
回声';
foreach($daily_Diets)['Diety_plan']作为$Diety_plan){
foreach($MEIN_plan['data']作为$data){
如果(!empty($data['id']))
回显'.$data['label'].'.$data['QUOTE'].';
否则回声';
}
$i++;
如果($i%5==0)回显“”;
}  
}

尝试将所有列名存储在一个数组中,并用它创建一个表:

foreach($array as $row) {
    $column[$i]['label'] = $row['label'];
    $column[$i]['data'] = $this->getdata($row['data']); 
    $i++;
}

function getdata($array) {
    $data = '';

    foreach($array as $row) {
        $data. = $row['label'].',';  
    }

    return $data;
}
创建一个具有列名的表,并尝试使用与insert into有关的循环插入数据

输入

<?php 
    $array = array(
        array(
            'meal_type' => 'bf',
            'label' => 'Breakfast',
            'calorie_limit' => 30,
            'total_calorie' => 0,
            'data' => array(
                array(
                    'id' => 107,
                    'label' => 'test',
                    'quantity' => 10,
                    'unit' => 'g',
                    'status' => 'bf'
                ),
                array(
                    'id' => 109,
                    'label' => 'testfrom',
                    'quantity' => 12,
                    'unit' => 'g'
                )
            )
        ),
        array(
            'meal_type' => 'sn',
            'label' => 'Snacks',
            'calorie_limit' => 10,
            'total_calorie' => 0,
            'data' => array(
                array(
                    'id' => 108,
                    'label' => 'test',
                    'quantity' => 121,
                    'unit' => 'g'
                )
            )
        ),
        array(
            'meal_type' => 'lu',
            'label' => 'Lunch',
            'calorie_limit' => 20,
            'total_calorie' => 0,
            'data' => array(array('status' => 'su'))
        ),
        array(
            'meal_type' => 'su',
            'label' => 'Supper',
            'calorie_limit' => 30,
            'total_calorie' => 0,
            'data' => array(
                array('status' => 'sn'),
                array(
                    'id' => 116,
                    'label' => 'test',
                    'quantity' => 200,
                    'unit' => 'oz'
                ),
            )
        ),
        array(
            'meal_type' => 'dn',
            'label' => 'Dinner',
            'calorie_limit' => 20,
            'total_calorie' => 0,
            'data' => array(
                array(
                    'id' => 113,
                    'label' => 'test500',
                    'quantity' => 20,
                    'unit' => 'oz',
                    'status' => 'dn'
                )
            )
        )
    );
输出

<?php 
    $array = array(
        array(
            'meal_type' => 'bf',
            'label' => 'Breakfast',
            'calorie_limit' => 30,
            'total_calorie' => 0,
            'data' => array(
                array(
                    'id' => 107,
                    'label' => 'test',
                    'quantity' => 10,
                    'unit' => 'g',
                    'status' => 'bf'
                ),
                array(
                    'id' => 109,
                    'label' => 'testfrom',
                    'quantity' => 12,
                    'unit' => 'g'
                )
            )
        ),
        array(
            'meal_type' => 'sn',
            'label' => 'Snacks',
            'calorie_limit' => 10,
            'total_calorie' => 0,
            'data' => array(
                array(
                    'id' => 108,
                    'label' => 'test',
                    'quantity' => 121,
                    'unit' => 'g'
                )
            )
        ),
        array(
            'meal_type' => 'lu',
            'label' => 'Lunch',
            'calorie_limit' => 20,
            'total_calorie' => 0,
            'data' => array(array('status' => 'su'))
        ),
        array(
            'meal_type' => 'su',
            'label' => 'Supper',
            'calorie_limit' => 30,
            'total_calorie' => 0,
            'data' => array(
                array('status' => 'sn'),
                array(
                    'id' => 116,
                    'label' => 'test',
                    'quantity' => 200,
                    'unit' => 'oz'
                ),
            )
        ),
        array(
            'meal_type' => 'dn',
            'label' => 'Dinner',
            'calorie_limit' => 20,
            'total_calorie' => 0,
            'data' => array(
                array(
                    'id' => 113,
                    'label' => 'test500',
                    'quantity' => 20,
                    'unit' => 'oz',
                    'status' => 'dn'
                )
            )
        )
    );

代码在哪里?同时显示所需的输出。您只需要标签。@Nic3500,我已经编辑了问题,请检查
daily\u founds['found\u plan']
是否未定义。您在数组中没有名为“膳食计划”@Andreas的项,粘贴了完整的arrayGood作业,但您应该包含一些注释。但是表数据为空。表数据为空。。。?你这是什么意思@VidyaL@Andreas评论补充道。。是否足够?$$r['label']将是数据中每个项的标签,而不是父数组标签
        <tbody>
            <tr>
                <td>'.$Breakfast.'</td>
                <td>'.$Snacks.'</td>
                <td>'.$Lunch.'</td>
                <td>'.$Supper.'</td>
                <td>'.$Dinner.'</td>
            </tr>
        </tbody>

    </table>';
    //?//    echo "<pre>";print_r($array);

    ?>