データベースから多次元配列を使用して配列を作成したいと思います。データベースには3つのテーブルがあり、1つは車両用、1つは損害賠償用、もう1つは損害賠償用です。
テーブル車両には、 IDと名前の2つの列があります
テーブルのdamagesには、damagesID 、 VehicleID、damagesType、damagesDescriptionの4つの列があります。
テーブルdamagesPhotosには、 damagesPhotoID、damagesID、damagesPhotoUrlの3つの列があります。
これらの3つの列を1つの配列に結合する必要があります。これは、次のようになります。
$vehicle = array(
"id" => "somestring",
"name" => "somestring",
"damages" => array(
"damagesType" => "somestring",
"damagesDescription" => "somestring",
"photoOfDamages" => array(
"damagesPhotoUrl" => "somestring"
)
)
);
私はこのコードを使用しています:
$query = "SELECT * from vehicle v LEFT JOIN damages d ON v.id = d.vehicleID LEFT JOIN damagesPhotos p ON d.damagesID = p.damagesID WHERE d.damagesID = p.damagesID AND v.id = 1";
$result = mysql_query($query);
$i = 0;
$vehicle = array();
while($row = mysql_fetch_array($result)){
$vehicle[$i] = array(
"id" => $row[id],
"name" => $row[name],
"damages" => array(
"damagesType" => $row[damagesType],
"damagesDescription" => $row[damagesDescription],
"photoOfDamages" => array(
"damagesPhotoUrl" => $row[damagesPhotoUrl]
)
)
);
$i++;
}
そしてそれはこれを返します:
[{"vehilceId":"1",
"name":"AW55005",
"damages":{
"damagesType":"Exterior",
"damagesDescription":"Rust",
"photoOfDamages":{
"damagesPhotoUrl":"link to damagesPhoto 01"
}
}
},
{"vehilceId":"1",
"name":"AW55005",
"damages":{
"damagesType":"Exterior",
"damagesDescription":"Rust",
"photoOfDamages":{
"damagesPhotoUrl":"link to damagesPhoto 02"
}
}
},
{"vehilceId":"1",
"name":"AW55005",
"damages":{
"damagesType":"Interior",
"damagesDescription":"Scratch",
"photoOfDamages":{
"damagesPhotoUrl":"link to damagesPhoto 03"
}
}
}
ただし、最初の2つのオブジェクトは同じであることがわかるように、damagesPhotoUrlのみが異なります。これらの2つの配列をマージして、次のようにするにはどうすればよいですか。
{"vehilceId":"1",
"name":"AW55005",
"damages":{
"damagesType":"Exterior",
"damagesDescription":"Rust",
"photoOfDamages":{
{"damagesPhotoUrl":"link to damagesPhoto 01"},
{"damagesPhotoUrl":"link to damagesPhoto 02"}
}
}
}, ...
前もって感謝します。
/モーテン