为了账号安全,请及时绑定邮箱和手机立即绑定

分解数组结果并申请 foreach

分解数组结果并申请 foreach

PHP
炎炎设计 2023-11-05 15:40:52
这是我的数组,array:2 [  0 => "{"1":[2],"2":[1,3]}"  1 => true]如何以相应的格式显示上述数组item_id | item_value_id   1             2   2             1   2             3我尝试使用 explode,但不幸的是我无法解析括号中的黑白。这是我尝试过的        // dd(explode("[]", $value));        // dd(preg_split('/"/', $value));        // dd(preg_split('/(?![^][]*\])/', $value));我没有得到预期的结果。更新:我把数组缠绕在json_decode上,我得到了        foreach ($arrays as $key => $value) {                    # code...                     $json = json_decode($value);   //Another foreach                     foreach ($json as $key => $value1) {                        # code...                        dd($value1);                        }                }结果**dd($json)** /**            {#1386              +"1": array:1 [                0 => 2              ]              +"2": array:2 [                0 => 1                1 => 3              ]            }        */**dd($value)**   /**    array:1 [      0 => 2    ]    **/
查看完整描述

2 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

我不确定我在这里是否完全正确,但我相信这就是你所要求的:


<?php


$data = [

    0 => '{"1":[2],"2":[1,3]}',

    1 => true

];



$decoded_json = json_decode($data[0], true);



?>


<table>

    <thead>

        <th>item_id</th>

        <th>item_value_id</th>

    </thead>

    <tbody>


   <?php foreach ($decoded_json as $item_key => $item){?>

        <?php foreach ($item as $item_data){ ?>


            <tr>

                <td><?php echo $item_key?></td>

                <td><?php echo $item_data?></td>

            </tr>



        <?php }?>

    <?php } ?>

    </tbody>

</table>


查看完整回答
反对 回复 2023-11-05
?
温温酱

TA贡献1752条经验 获得超4个赞

    除非对象实现 Countable 或 ArrayAccess 接口,否则无法循环对象。 假设您的模型名称是 ,您可以执行如下批量插入:Model


<?php


$rows = [];


$arrays = json_decode($data[0],true);


foreach ($arrays as $key1 => $value) {

    foreach ($value as $key2 => $value2) {

        $rows[] = [

            'item_id' => $key1,

            'item_value_id' => $value2

        ];

    }

}


if(count($rows) > 0){

    Model::insert($rows); // bulk insert

}


查看完整回答
反对 回复 2023-11-05
  • 2 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信