快速问题:如何处理每条消息并获取'from'的值。
{
"messages":[
{
"id":"123",
"timestamp":"123",
"from":"XXX",
"avatar":"123",
"nickname":"123",
"body":"123"
},
{
"id":"123",
"timestamp":"123",
"from":"ZZZ",
"avatar":"123",
"nickname":"123",
"body":"123"
}
],
"is_last_page":true
}
这是我目前所走的距离。但似乎不起作用。
foreach ($decode['messages'][0] as $value) {
if ($value == 'ZZZ') {
return $value;
} else {
return false;
}
}
答案 0 :(得分:0)
尝试一下:
foreach ($decode['messages'] as $value) {
if ($value['from'] == 'ZZZ') {
return $value['from'];
} else {
return false;
}
}
要查看代码出了什么问题,首先,将所有内容打印到屏幕上,如下所示:
print_r($decode);
echo '<br/>';
print_r($decode['messages']);
echo '<br/>';
print_r($decode['messages'][0]);
然后,分析输出以查看需要解析哪个数组才能实现目标。
答案 1 :(得分:0)
您几乎步入正轨。只需执行以下一些调整-
1。。从foreach
中删除多余的索引,只需使用$decode['messages']
而不是$decode['messages'][0]
2。。阻塞$value['from']
语句时使用if
而不是$value
foreach ($decode['messages'] as $value) {
if ($value['from'] == '123') {
return $value['from']; //use echo to print value
} else {
return 'not matched';
}
}