帮助如何处理Json / php数组数据

时间:2011-07-27 18:58:06

标签: php json

我有以下代码

$getchats = $api->call("getLatestChats");
echo '<pre>';
print_r(array_values($getchats));
echo '</pre>';

给了我以下结果..

Array
(
[0] => success
[1] => getLatestChats
[2] => Array
    (
        [0] => Array
            (
                [message] => type /ch g
                [time] => 1311806596
                [player] => mattsnod
            )

        [1] => Array
            (
                [message] => im good
                [time] => 1311806601
                [player] => lueroi01
            )

        [2] => Array
            (
                [message] => im good
                [time] => 1311806606
                [player] => lueroi01
            )

我知道我可以使用

print_r(var_dump($getchats));

将它放入PHP数组中,但我无法更好地了解如何使用这些数据。

在php数组中,就像这样

array(3) {
  ["result"]=>
  string(7) "success"
  ["source"]=>
  string(14) "getLatestChats"
  ["success"]=>
  array(50) {
[0]=>
array(3) {
  ["message"]=>
  string(4) "yes?"
  ["time"]=>
  int(1311806791)
  ["player"]=>
  string(8) "mattsnod"
}
[1]=>
array(3) {
  ["message"]=>
  string(10) "um hold on"
  ["time"]=>
  int(1311806796)
  ["player"]=>
  string(8) "mattsnod"
}

这是一个非常普遍的问题,但我怎么能使用foreach或者使用这些数据,因为我没有太多运气。我确定我忽视了一些事情,但我的脑袋现在正在受伤。我整个上午都在谷歌搜索和阅读。

经过一段时间的游戏,这接近我想要的......

foreach($getchats as $chat_on=>$data){
//echo "<b>$chat_on</b><br>";
foreach($data as $key=>$value){
    //echo "$key - $value<br>";
    foreach($value as $key2=>$value2){
        echo "$key2 - $value2<br>";

    }
}
}

现在要弄清楚如何单独操作这些或者调用$ key2 [message],以便我可以不同地转换时间戳和格式。

消息 - rlly? 时间 - 1311809089 球员 - m0terb0nd

最终,这完成了我想要的......

foreach($getchats as $chat_on=>$data){
    foreach($data as $key=>$value){
            $date = date("h:i a", $value['time']);
            echo "($date) $value[player]: $value[message]<BR><BR>";
    }
}

2 个答案:

答案 0 :(得分:1)

foreach($getchats->success as $chat) {
   echo $chat['message'] . "<br>";
   echo $chat['time'] . "<br>";
   echo $chat['player'] . "<br>";    
}

有关foreach的一些参考资料可以在这里找到 - http://www.php.net/manual/en/control-structures.foreach.php

答案 1 :(得分:1)

这是一个数组......就像访问任何其他数组一样访问数据。

echo $getchats[2][0]['msg']; // produces: "type /ch g"
echo $getchats[0]; // produces "success"