Отображение массива массива на странице просмотра PHP - PullRequest
0 голосов
/ 27 апреля 2018

Я получаю результат массива массива из контроллера. Здесь один - это основной массив, а под «bom_dt» - массив массивов. Я знаю, что, как отобразить основной массив, но не уверен в массиве под основным массивом. Я застрял здесь. Пожалуйста, дайте мне несколько советов по этому поводу,

 Array
    (
        [0] => Array
            (
                [tih_sku] => 10001
                [tih_style] => RHH/110/02
                [tih_color] => BLACK
                [tih_leather] => PERU
                [bom_dt] => Array
                    (
                        [0] => Array
                            (
                                [mm_spec_fld] => *-*-*-*-*-NO 5, 22.5 CM-*-*-*-*-*-*-*-*-*-*-*-METAL-*-*-*-*-*-*-*-*-*-*-*-*-BLACK-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
                                [tbid_qnty] => 2
                                [mi_sku] => RHH/110/02 BLACK
                            )

                        [1] => Array
                            (
                                [mm_spec_fld] => *-*-*-*-*-NO 3-*-*-*-*-*-*-*-*-*-*-*-NYLON-*-*-*-*-*-*-*-*-*-*-*-*--*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
                                [tbid_qnty] => 8.75
                                [mi_sku] => RHH/110/02 BLACK
                            )

                        [2] => Array
                            (
                                [mm_spec_fld] => *-*-*-*-*-*-BLG-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-MD1-NA-NA-NA-NA-NA-NA-NA-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
                                [tbid_qnty] => 1
                                [mi_sku] => RHH/110/02 BLACK
                            )

                        [3] => Array
                            (
                                [mm_spec_fld] => *-*-*-*-*-*-BLG-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-CCF2-NA-NA-NA-NA-NA-NA-NA-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
                                [tbid_qnty] => 1
                                [mi_sku] => RHH/110/02 BLACK
                            )

                        [4] => Array
                            (
                                [mm_spec_fld] => *-*-GROSSGRAIN-GRANITE-*-*-*-*-*-*-*-*-*-----*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
                                [tbid_qnty] => 0.9
                                [mi_sku] => RHH/110/02 BLACK
                            )


                    )

            )

        [1] => Array
            (
                [tih_sku] => 10009
                [tih_style] => RHH/110/04
                [tih_color] => BLACK
                [tih_leather] => PERU
                [bom_dt] => Array
                    (
                        [0] => Array
                            (
                                [mm_spec_fld] => *-*-*-*-*-NO 5, 44.5 CM-*-*-*-*-*-*-*-*-*-*-*-METAL-*-*-*-*-*-*-*-*-*-*-*-*-BLACK-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
                                [tbid_qnty] => 1
                                [mi_sku] => RHH/110/04 BLACK
                            )

                        [1] => Array
                            (
                                [mm_spec_fld] => *-*-*-*-*-NO 3-*-*-*-*-*-*-*-*-*-*-*-NYLON-*-*-*-*-*-*-*-*-*-*-*-*--*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
                                [tbid_qnty] => 7.75
                                [mi_sku] => RHH/110/04 BLACK
                            )

                        [2] => Array
                            (
                                [mm_spec_fld] => *-*-*-*-*-*-BLG-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-FRAME-RECTANGULAR-16MM-NA-NA-NA-NA-PIECES-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
                                [tbid_qnty] => 2
                                [mi_sku] => RHH/110/04 BLACK
                            )

                        [3] => Array
                            (
                                [mm_spec_fld] => *-*-*-*-*-*-BLG-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-R.S.FITTINGS-NA-NA-NA-NA-NA-NA-PIECES-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
                                [tbid_qnty] => 2
                                [mi_sku] => RHH/110/04 BLACK
                            )

                        [4] => Array
                            (
                                [mm_spec_fld] => *-*-*-*-*-*-BLG-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-MD1-NA-NA-NA-NA-NA-NA-PIECES-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
                                [tbid_qnty] => 1
                                [mi_sku] => RHH/110/04 BLACK
                            )

                    )

            )

        [2] => Array
            (
                [tih_sku] => 10230
                [tih_style] => RHN/208/02
                [tih_color] => BLACK
                [tih_leather] => OSCAR
                [bom_dt] => Array
                    (
                        [0] => Array
                            (
                                [mm_spec_fld] => *-*-*-*-*-NO 5, 68 CM-*-*-*-*-*-*-*-*-*-*-*-METAL-*-*-*-*-*-*-*-*-*-*-*-*-BLACK-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
                                [tbid_qnty] => 1
                                [mi_sku] => RHN/208/02 BLACK
                            )

                        [1] => Array
                            (
                                [mm_spec_fld] => *-*-*-*-*-NO 5-*-*-*-*-*-*-*-*-*-*-*-NYLON-*-*-*-*-*-*-*-*-*-*-*-*--*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
                                [tbid_qnty] => 17
                                [mi_sku] => RHN/208/02 BLACK
                            )

                        [2] => Array
                            (
                                [mm_spec_fld] => *-*-*-*-*-NO 3-*-*-*-*-*-*-*-*-*-*-*-NYLON-*-*-*-*-*-*-*-*-*-*-*-*--*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
                                [tbid_qnty] => 8
                                [mi_sku] => RHN/208/02 BLACK
                            )

                        [3] => Array
                            (
                                [mm_spec_fld] => *-*-*-*-*-*-BLG-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-BRANDED ADJUSTER-NA-25MM-NA-NA-NA-NA-PIECES-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
                                [tbid_qnty] => 1
                                [mi_sku] => RHN/208/02 BLACK
                            )

                    )

            )

Результат основного массива будет общим для соответствующего подмассива. Можете ли вы предложить, как отобразить его на странице просмотра, используя цикл foreach.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

попробуйте как следует

<?php
$var = array(
    array(
        'tih_sku' => '10001',
        'tih_style' => 'RHH/110/02',
        'tih_color' => 'BLACK',
        'tih_leather' => 'PERU',
        'bom_dt' => array(
            array(
                'mm_spec_fld' => 'NO 5, 44.5 CM - METAL - BLACK',
                'tbid_qnty' => '1',
                'mi_sku' => 'RHH/110/04 BLACK',
            ),
            array(
                'mm_spec_fld' => 'NO 3 - NYLON',
                'tbid_qnty' => '7.75',
                'mi_sku' => 'RHH/110/04 BLACK',
            )
        ),
    ),
    array(
        'tih_sku' => '10009',
        'tih_style' => 'RHH/110/04',
        'tih_color' => 'BLACK',
        'tih_leather' => 'PERU',
        'bom_dt' => array(
            array(
                'mm_spec_fld' => 'NO 5, 68 CM - METAL - BLACK',
                'tbid_qnty' => '1',
                'mi_sku' => 'RHN/208/02 BLACK',
            ),
            array(
                'mm_spec_fld' => 'NO 5',
                'tbid_qnty' => '17',
                'mi_sku' => 'RHN/208/02 BLACK',
            )
        ),
    )
);
?>
<?php if(array_filter($var)){ ?>
<style>
table{width:50%;}
td{border:1px solid #999;padding:5px;}
</style>
<table>
    <tr><td>Specification</td><td>Quantity</td><td>Code</td></tr>
<?php
$returnArray = array_map(function($v){ return $v['bom_dt'];},$var);
array_walk($returnArray, function($v2){array_walk($v2, function($v3){
?>
<tr><td><?=$v3['mm_spec_fld'];?></td><td><?=$v3['tbid_qnty'];?></td><td><?=$v3['mi_sku'];?></td></tr>
<?php
});});
?>
</table>
<?php } ?>

демо: https://paiza.io/projects/bhrSiwQi5zxtSMAz7ev0Wg?language=php

0 голосов
/ 27 апреля 2018

Вы хотели бы реализовать вложенный foreach, как намекал Раймонд Нейланд.

<?php foreach ($items as $item): ?>
<tr>
    <th>SKU</th>
    <td><?php echo escape($item['tih_sku']); ?></td>
...
    <th>BOM DT</th>
    <td>

<?php if (count($item['bom_dt]) > 0): ?>
<?php    foreach ($item['bom_dt'] as $bom_dt): ?>

    //display the bom_dt details

<?php    endforeach; ?>
<?php endif; ?>

    </td>
</tr>
<?php endforeach; ?>

Есть много способов выполнить приведенный выше пример, но, пожалуйста, проверьте документацию для используемой вами php-фреймворка. Если вы не используете php-фреймворк, вы должны обязательно реализовать что-то, чтобы избежать записи данных на страницу, чтобы защитить себя от атак.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...