如何在php表的一行中显示多个数组值

时间:2019-11-21 13:30:19

标签: php laravel laravel-5

我有以下json对象之类的返回数据,

{
    "user_token": "ad48c412-3866-4ac9-adf6-3328911ae46c",
    "order_info": {
        "order_id": "CGC12345678",
        "company_id": 32,
        "price": 1000.5,
        "currency": "MYR",
        "products": [
            { "type": "hr_claims", "name": "HR Claims", "is_fixed_price": true, "price": 500.5, "currency": "MYR" },
            { "type": "hr_leave", "name": "HR Leave", "is_fixed_price": true, "price": 500, "currency": "MYR" },
            { "type": "finance_advisory", "name": "FinanceAdvisory", "is_fixed_price": false, "currency": "MYR" }
        ],
        "total_invoices": 200,
        "total_staffs": 80
    }
}

我想将此对象保存在php表的一行中,但是由于产品具有3个不同的数组,因此我无法将所有3个[products] [name]都保存到php表的一条记录中。

像下面 产品-人力资源索赔,人力资源休假,财务咨询

有人可以帮我吗?

这是我尝试的!这一个返回最后一个!

<td>
    @php 
    $json = $order->data; 
    $json = json_decode($json, true); 
    $products = $json['order_info']['products']; 
    foreach ($products as $hitsIndex => $hitsValue) { 
        $data = $hitsValue['name']. '<br/>'; 
    } 
    @endphp 
    {{$data}}
</td>

enter image description here

1 个答案:

答案 0 :(得分:0)

在您的foreach循环中,您每次迭代都会覆盖$data,这就是为什么您仅获得最后一个条目的原因。您需要将结果连接到$data

更改

foreach ($products as $hitsIndex => $hitsValue) {
    $data = $hitsValue['name']. '<br />';
}

$data = '';
foreach ($products as $hitsIndex => $hitsValue) {
    $data .= $hitsValue['name']. '<br />';
}