【问题标题】:php: different between array( ) and { } [closed]php:array()和{}之间的不同[关闭]
【发布时间】:2013-04-05 19:00:04
【问题描述】:

有什么区别

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 每个元素? 谢谢

【问题讨论】:

  • 一个是数组,另一个是json
  • 把它们转换成什么?
  • 问你真正的问题 - 没有上下文,这是没有意义的
  • @John:那甚至不是 JSON。
  • @john:不。 “另一个”是javascript。 json 会引用键。

标签: php arrays data-structures


【解决方案1】:

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

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

输出:

Array
(
    [key] => value
)

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

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

{
    "user_id": "1",
    "username":"user"
    ...
}

【讨论】:

    【解决方案2】:

    第一个是 PHP,第二个是 JavaScript 数组。

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


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


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

    array_walk( "json_decode", $MyArry );
    

    【讨论】:

    • 不,它不是 JSON。键必须是 JSON 中的字符串。
    • key需要用"引用为json。
    • 第一个不是PHP。这是print_r 的输出。它不会在 PHP 中解析...
    • @FelixKling 已更新解决方案 ^_^ 谢谢
    • 嗯 :) 它也不是 JavaScript 数组……它是……我不知道它是什么。
    猜你喜欢
    • 2012-10-13
    • 1970-01-01
    • 2010-09-30
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    相关资源
    最近更新 更多