如何删除“;[]”;在使用php的json输出中


how to remove "[]" in an json output using php

如何转换以下json格式

[
    [{
        "product_id": 1,
        "name": "Cotton Shirt",
        "sku": "abcdef"
    }],
    [{
        "product_id": 2,
        "name": "Silk Shirt",
        "sku": "csfddef"
    }]
]

喜欢低于

[{
    "product_id": 1,
    "name": "Cotton Shirt",
    "sku": "abcdef"
}, {
    "product_id": 2,
    "name": "Silk Shirt",
    "sku": "csfddef"
}]

我只想去掉多余的方括号。的可能性

如果无法预先从初始数组中获取内部数组,请使用json_decodejson_encode函数尝试以下方法:

$arr = json_decode('[[{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"}]]')[0];
print_r(json_encode($arr));  // "[{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"}]"

使用substr()从第一个字符返回到倒数第二个字符:

$input = '[[{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"}]]';
$result = substr($input, 1, -1);
// $result: [{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"}]

如果JSON已经是一个数组,那么只需获取第一项:

$result = json_encode($input[0]);
// $result: [{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"}]

试试这个:

<?php
$json = '[[{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"}],[{"product_id":2,"name":"Silk Shirt","sku":"csfddef"}]]';
$arrayData = json_decode($json, true);
$newData = array_map(function($data) {return $data[0];}, $arrayData);
$json = json_encode($newData);
print_r($json);

结果是:

[{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"},{"product_id":2,"name":"Silk Shirt","sku":"csfddef"}]

它有效,请在此处查看:单击