-1

有什么不同

Array
    (
        [user_id] => 1
        [username] => user
        [first_name] => hello
        [last_name] => world
    )

{
    user_id: "1",
    username:"user",
    first_name:"hello",
    last_name:"world"
}

? 以及如何在 php 中转换它们?

编辑:添加详细信息

实际上我正在使用 redis zunionstore 和 zrevrange 来组合用户数据。结果返回给我类似的东西:

Array
(
    [0] =>{"user_id":"1","username":"user","first_name:hello","last_name:world"}
    [1] => ...
)

由于我必须处理数据,我想要这样的东西:

Array
(
    [0] => Array
        (
            [user_id] => 1
            [username] => user
            [first_name] => hello
            [last_name] => world
        )
 ...
)

那么有没有简单的方法来转换它而不是使用 for 循环来 json_decode 每个元素?谢谢

4

2 回答 2

4

第一个字符串是print_r函数的输出。例子:

$array=array('key'=>'value');
print_r($array);

输出:

Array
(
    [key] => value
)

你的第二个是类似 JSON 的,但它缺少键的双引号。
不能直接转换它们。

json_decode如果您的第二个字符串是这样的,您可以将 JSON 转换为 PHP 数组:

{
    "user_id": "1",
    "username":"user"
    ...
}
于 2013-04-05T19:01:11.873 回答
2

如前所述,第一个是 PHP,第二个是 JavaScript 数组。

要将数组转换为 JSON,请使用json_encode();


将 JavaScript 数组转换为 JSON 文本,然后再转换为 PHP 数组(关联);使用JSON.stringify()json_decode()


对于您的任务,最好的选择是array_walk函数:

array_walk( "json_decode", $MyArry );
于 2013-04-05T19:02:03.263 回答