0

PHP で * From my sql table を選択し、それを JSON に変換すると、結果は次のようになります。

([
    {"id":"350","Name":"BlaBla","Info":"BlaBla"}, 
    {"id":"351","Name":"BlaBla","Info":"BlaBla"},
    {"id":"352","Name":"BlaBla","Info":"BlaBla"}
]);

上記のレコードの id に基づいて、クライアントの Web サイトから画像 (これはクライアントの要求です) をスクレイピングし、画像を同様の配列/辞書に出力し、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ですか?

編集

これは、配列を結合したい場所です。

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);

} } }

私のバージョンは明らかに機能しません。既存の image[] に新しい画像を追加しているように見えるため、$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...
]);
4

3 に答える 3

0

PHP側では、両方の配列でarray_merge()を使用します。さらに、array_unique が便利になります (重複が削除されます)。

于 2013-05-01T14:10:54.287 に答える