【发布时间】:2016-10-22 21:37:55
【问题描述】:
我有两张桌子。一个是“demo”,另一个是“like”。
我正在使用 json_encode 将值数组转换为 json 格式。
演示有:
[{ 'id': 1, 'like_id': 2, 'name': 'hero' }, { 'id': 2, 'like_id': 1, 'name': 'villain' }]
喜欢有:
[{ 'id': 1, 'movie'': 'castle' }, {'id': 2, 'movie' : 'superman' }]
我要新建一个json数据如下:
[{ 'id': 1, 'like_id': [{'id': 2, 'movie' : 'superman'}], 'name': 'hero'},
{ 'id': 2, 'like_id': [{'id': 1, 'movie': 'castle'}], 'name': 'villain'}]
搜索了一段时间后,我想我可能需要递归函数。但我不确定在这种情况下我该怎么写。
这是我尝试过的:
$pages = array();
$demo = Object('demo');
$like = Object('like');
foreach ($demo as $d) {
foreach ($like as $l) {
$response = array(
'id' => $d['id'],
'like_id' => array(
'id' => $l['id'],
'movie' => $l['movie']
),
'name' => $d['name']
);
array_push($pages, $response);
}
}
$res = json_encode($pages);
echo $res;
【问题讨论】:
-
你不需要递归。只是嵌套了
foreach循环。 -
为什么在结果中需要
like_id中的数组?Demo中只有一个 ID 号,所以应该将其替换为Like中的对象。 -
@Barmar 我尝试了嵌套的 foreach。但它会增加更多次数并打印结果。
-
显示您尝试过的内容。我们还能如何帮助您了解您的错误?
-
为什么要打印结果?您只是使用循环创建一个新数组,并在完成后调用
json_encode。
标签: php arrays json recursion multidimensional-array