我在PHP中选择*来自我的sql表,然后将其转换为JSON,结果如下:
([
{"id":"350","Name":"BlaBla","Info":"BlaBla"},
{"id":"351","Name":"BlaBla","Info":"BlaBla"},
{"id":"352","Name":"BlaBla","Info":"BlaBla"}
]);
我根据上面记录中的id抓取客户网站上的图像(这是客户端的请求),然后将图像输出到类似的数组/字典中并输出到JSON中:
([
{"image1":"http://Sourceofimg.jpg"},
{"image2":"http://Sourceofimg.jpg"},
{"image3":"http://Sourceofimg.jpg"},
{"image4":"http://Sourceofimg.jpg"},
{"image5":"http://Sourceofimg.jpg"}
]);
让我说我抓了一页,page.php?id=350
,我得到一个类似的输出到上面的图像数组,如何将该结果追加/添加到id=350
的第一个数组? / p>
修改
这是我想要组合数组的地方:
while ($row = mysql_fetch_assoc($results))
{
$rows[] = $row;
$url = 'http://www.url.com/page.php?id='.$row['id'].'';
$html = file_get_html($url);
foreach($html->find('div.classvalue') as $element){
foreach($element->find('img') as $img){
$images[] = array("image".$i."" => $img->src);
$i = $i + 1;
$rows = array_merge($rows, $images);
} } }
我的版本显然不起作用,似乎是将新图像附加到已经存在的图像[]因此$ rows []的最后一个元素将获得完整的图像列表,我只想要将图像绑定到那个id。 同样通过合并,它没有正确合并我得到这样的输出,例如:
([
{"id":"350","Name":"BlaBla","Info":"BlaBla"},
{"image1":"http://Sourceofimg.jpg"},
{"image2":"http://Sourceofimg.jpg"},
{"id":"351","Name":"BlaBla","Info":"BlaBla"}
]);
我希望如此:
([
{"id":"350","Name":"BlaBla","Info":"BlaBla", "image1":"http://Sourceofimg.jpg", "image2":"http://Sourceofimg.jpg"} etc...
]);
答案 0 :(得分:1)
我认为这就是你所需要的。首先必须使用$images
开始使用干净的$images = array();
数组,这样您就不会在数组中获得先前循环的结果。然后你应该收集$images
数组内的图像(使用forloops)。然后,您可以使用$row
将图像存储在密钥'images'
下的$row['images'] = $images;
数组中。
希望这就是你所需要的。
while ($row = mysql_fetch_assoc($results)) {
$url = 'http://www.url.com/page.php?id='.$row['id'].'';
$html = file_get_html($url);
$images = array();
$i = 0;
foreach($html->find('div.classvalue') as $element){
foreach($element->find('img') as $img){
$row["image".$i] = $img->src;
$i = $i + 1;
}
}
$rows[] = $row;
}
答案 1 :(得分:0)
在php端,对两个数组使用 array_merge()。另外,array_unique会变得很方便(它会删除重复项)。
答案 2 :(得分:0)
您必须将$images
添加到实际行。你正在做的是调整数组大小。
$actualIndex = count($rows);
$rows[] = $row;
...
...
$rows[$actualIndex] = $images;
或类似的东西
您可以调整$rows[$actualIndex]
以满足您的结构。
首先设置$imageID = 1
;
$rows[$actualIndex]['image'.$imageID] = $images['url']
imageID++;