ホテルを選ぶとき、これだけは譲れない条件TOP3は?

下記の質問と全く同じことをしたいのですが

http://detail.chiebukuro.yahoo.co.jp/qa/question …

回答をみても分かりませんでした。

array_mergeを使うとあったので

foreach ($xmlData->Item as $itemValue)

foreach ($xmlData2->Item as $itemValue2)

$result = array_merge($itemValue, $itemValue2);
print_r($result);

としてみましたが、

Warning: array_merge() [function.array-merge]: Argument #1 is not an array

とエラーが出てしまいます。

最終的には以下のようにDBに入れたいと思っているのですが
その前段階としてforeachをまとめるにはどのようにしたらよいででしょうか。

$sql = "INSERT INTO teble (itemname,price) VALUES ('".$itemValue."','".$itemValue2."')";

A 回答 (1件)

そもそも$xmlData->Itemは(Objectであって)配列ではありませんよね?foreachが配列以外も扱えるからといって、配列関数でも(配列ではないObjectが)扱えるというわけではありません。



$arr1 = array();
$arr2 = array();

としておいて、

foreach ($xmlData->Item as $itemValue) { $arr1[] = $itemValue; }
foreach ($xmlData2->Item as $itemValue) { $arr2[] = $itemValue; }

foreach ($arr1 as $key=>$itemValue1) {
$itemValue2 = $arr2[$key];
// $itemValue1 と $itemValue2 を使って処理
}

などとした方が手っ取り早いと思います。

この回答への補足

再度質問してしまいましたが、これぐらい自分で確かめるべきですね・・・

すいませんでした。
どうもありがとうございました。
とても参考になりました。

補足日時:2013/04/11 15:00
    • good
    • 0
この回答へのお礼

すごい!バッチリでした!

もし今後Objectが増えてしまった場合は

$arr1 = array();
$arr2 = array();
$arr3 = array();
$arr4 = array();


foreach ($xmlData->Item as $itemValue) { $arr1[] = $itemValue; }
foreach ($xmlData2->Item as $itemValue) { $arr2[] = $itemValue; }
foreach ($xmlData3->Item as $itemValue) { $arr3[] = $itemValue; }
foreach ($xmlData4->Item as $itemValue) { $arr4[] = $itemValue; }

foreach ($arr1 as $key=>$itemValue1) {
$itemValue2 = $arr2[$key];
$itemValue3 = $arr3[$key];
$itemValue4 = $arr4[$key];

}

これで大丈夫という理解であってますでしょうか?
たびたびで申し訳ありませんがよろしくお願いいたします。

お礼日時:2013/04/10 20:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報