2017-09-15 41 views
0

简而言之 - 我有两个表。定义由PDO检索的数组的索引

一个生成simplexml_loadfile方法,第二个生成PDO查询。我需要比较他们,第一个(由simplexml下载)后,我通过foreach和我得到$xml['element']类型的索引,而在同一个循环中,我需要进一步定义从数据库检索集合的元素。

从数据库中查询的结果被写入到可变$db和在循环中的XML将其定义为$db['element']后虽然它是一个未定义元素,因为阵列具有索引从0n计数。

我能想到的唯一方法是使用另一个for循环,或者foreach来通过第二个数组的记录,但我会避免这种情况。有没有其他方法?

$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

如果你想两个数组的相应元素,你可以这样做:

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

有一个问题,这两个表具有完全不同的结构。你的方法是好的,但在我的情况下,我得到一个未定义的索引 – sauero

+0

这就是为什么我们要求一些样本输入和输出。否则,我们只能猜测你的意思。数据库和XML之间有什么关系? – Barmar