PHP-修改格式化数组

PHP-修改格式化数组,php,arrays,array-walk,Php,Arrays,Array Walk,我有一个在db中插入的数组函数 $data = array( "This\tIs\tAn\tExample\tOne\tOf\tMy\tArrays\" ); 我已将其正确格式化,并且给定的输出带有: $result = array_walk($data, function(&$item) { $item = '{ ' .str_replace("\t", ', ', $item) . ' }'; }); 以JSON格式插入db的其中一行的结果是: { This, is, Exam

我有一个在db中插入的数组函数

$data = array(
 "This\tIs\tAn\tExample\tOne\tOf\tMy\tArrays\"
);
我已将其正确格式化,并且给定的输出带有:

$result = array_walk($data, function(&$item) { $item = '{ ' .str_replace("\t", ', ', $item) . ' }'; });
以JSON格式插入db的其中一行的结果是:

{ This, is, Example }, {  One, Of, My, Arrays}
它们都是这样格式化的

如何绕过此选项以获得所需的格式,如:

{ This, is, Example, One, Of, My, Arrays}

如果你想转换这个

$data = array(
 "This\tIs\tAn\tExample\tOne\tOf\tMy\tArrays\"
);
对此

{ This, is, Example, One, Of, My, Arrays}
你可以简单地通过

$result = [];
    foreach ($data as $index => $value) {
        $result[] = implode(',', explode("\t", $value));
    }
    $result = '{' . implode(',', $result) . '}';

这不是有效的JSON开头-大括号表示对象,所以您需要在其中包含键值对。为什么不在字符串上使用
explode
,然后使用simple
json\u encode
?因为如果删除了$data中的最后一个\in,那么代码应该可以工作,为什么后面还要有引号?当我运行给定的代码时,在PHP中查看查询的执行情况会很有帮助,
$data
是一个数组,包含
{This,is,Example,One,of,My,Arrays}
作为第一个元素。因此,您转储的输出看起来很奇怪,特别是当
一个
在当前和预期的输出中都消失时,它返回“{Id,FirstName,LastName,DateOfBirth,Phone,Address1,Address2,City,State,PostCode,Country,Email}”,并对explode('\\',$value')进行了少量更正(“\t',$value])以进行explode(“\t',$value)))@georgedryser您还需要将其更改为使用双引号
“\t”