如何将两个数组值转换为 JSON 格式

Posted

技术标签:

【中文标题】如何将两个数组值转换为 JSON 格式【英文标题】:how to convert two array value in JSON format 【发布时间】:2021-11-14 21:19:06 【问题描述】:

我的控制器

 public function showcart()


    $da = isset($_COOKIE["cart"]) ? $_COOKIE["cart"] : "[]";

    $data = json_decode($da);
    
    return view('customer.showcart', compact('data'));

刀片:

<tbody>
                @foreach ($data as $dat)
                    <form action=" url('/addcart') " method="post">
                        @csrf
                        <tr>
                            <td> $dat['id'] </td>
                            <td> $dat['quantity']</td>
                        </tr>
                    </form>
                @endforeach

            </tbody>

电流输出

"id":["8","8","8","9","9","8","8","8","10"],"quantity":["3","2","3","3","2","1","2","1","6"]

我想将其转换为 JSON 中的每个索引,例如 id[0] 和数量 [0],id[1] 和数量 [1]。

【问题讨论】:

试试json_decode($da, true),为什么需要compact$data 已经是一个数组 预期的结果是什么?你能以 php 格式提供这个示例数据吗? ''如果我使用'''json_decode($da, true)''',则尝试读取数组上的属性“id”。 "8":3,"8":2,"8":3 像这样。 那么请更新您问题中的示例,这样才有意义。 【参考方案1】:

如果您的目标是键/值对,请注意对象不能有重复的键,并且由于您的 id 值是 8、9 或 10(在示例中),输出不能有更多超过 3 个键:

"8": 1, "9": 2, "10": 6

无论如何,如果你的钥匙在现实中确实是独一无二的,那么你需要array_combine

$arr = json_decode($da, true);
$data = array_combine($arr["id"], $arr["quantity"]);

请注意,您对 $da 的分配需要不同的默认大小写以使其兼容:

$da = isset($_COOKIE["cart"]) ? $_COOKIE["cart"] : '"id":[],"quantity":[]';

最后,您的循环应该以不同的方式提取键和值:

<form action=" url('/addcart') " method="post">
    @csrf 
    <table>
    @foreach ($data as $key => $value)
        <tr>
            <td> $key </td>
            <td> $value </td>
        </tr>
    @endforeach
    </table>
</form>

【讨论】:

array_combine(): Argument #1 ($keys) must be of type array, string given 无法重现。看到它在3v4l 上运行。一定与您告诉我们的有所不同。 请提供您对$_COOKIE["cart"]准确 值,以便您的问题可以重现。 检查。我会让你知道兄弟。 :) 嗨!当我使用 dd 查看显示良好的值时。就像array:3 [▼ 8 =&gt; "3" 9 =&gt; "4" 10 =&gt; "4" ],但是当我试图将数据传递给刀片时,它说的是Attempt to read property "id" on string this。

以上是关于如何将两个数组值转换为 JSON 格式的主要内容,如果未能解决你的问题,请参考以下文章

如何将数组转换成JSON-CSDN论坛

如何使用pyspark将具有多个可能值的Json数组列表转换为数据框中的列

xml转换为json格式时,如何将指定节点转换成数组 Json.NET

如何将 JSON 属性值转换为键和值数组

将字符串(类似json格式)转换为对象或数组

如何将 Laravel 集合数组转换为 json