2017-09-15 3 views
0

要するに、私は2つのテーブルを持っています。PDOで取得した配列の番号付きインデックスを定義する

私はsimplexml_loadfileメソッドを生成します.2番目はPDOクエリです。私は両方を比較する必要があります。最初のもの(simplexmlでダウンロードしたもの)の後にforeachを渡します。同じループでデータベースから取り出されたコレクションの要素をさらに定義する必要がありますが、インデックスは$xml['element']です。

アレイ0からnに計数指標を持っているので、それは未定義の要素であるが、XMLは$db['element']としてそれを定義した後、データベースからのクエリの結果を変数$dbに、ループに書き込まれます。

私が考えることができる唯一の方法は、別のforループを使用するか、foreachが2番目の配列のレコードを渡すことですが、私はそれを避けるでしょう。他の方法はありますか?

$db = $stmt->fetchAll(); 
$XML = simplexml_load_file('file.xml'); 
$xmlarray = $XML->products->product; 

foreach ($xmlarray as $xml) { 
    echo $xml['element']; // It works 
    echo $db['element']; // Isn't works 
    echo $db[0-n]['element']; // It works 
} 
+0

また、あなたの 'file.xml'と予想される出力を共有しています。 –

+0

ファイルが大きすぎて、役に立たない場合でも、このファイルを含めるのは意味がありません。どのような結果が私はポストで説明した達成したいと思います。具体的には - 余分なループを使用せずに$ dbレコードに行きたい – sauero

+0

私はこの質問も理解していません。ファイルの小さなサンプルと取得しようとしている結果を表示します。 – Barmar

答えて

1

あなたは2つの配列の対応する要素をしたい場合は、あなたが行うことができます:

foreach ($xmlarray as $i => $xml) { 
    echo $xml['element']; 
    echo $db[$i]['element']; 
} 
+0

これらの2つのテーブルが全く異なる構造を持っているという問題があります。あなたのメソッドは大丈夫ですが、私の場合は未定義のインデックス – sauero

+0

を取得しています。そのため、サンプルの入力と出力のいくつかを求めました。それ以外の場合は、あなたが何を意味するかを推測する必要があります。 DBとXMLの関係は何ですか? – Barmar

関連する問題