当我尝试循环看起来像这样的for循环时:
$singleArray = array_column($upcValuesFromArray, count($upcValuesFromArray));
$groupedArrays = array_chunk($singleArray, 5, false);
for($i = 0; $i < count($groupedArrays); $i++){
$xmlFilePath = 'xml/' . $file_name . $i . '.xml';
$xml = simplexml_load_file($xmlFilePath);
echo $xmlFilePath;
foreach($xml->children() as $items) {
//Pull UPC data
echo $items['Id'] . ',';
//Verify complete listing
if (isset($items->Products->Product->SalesRankings->SalesRank[0]->Rank) == false) {
//Pull ASIN data
echo $items->Products->Product->Identifiers->MarketplaceASIN->ASIN . ',';
//Pull pricing data
echo $items->Products->Product->AttributeSets->children('ns2', true)->ItemAttributes->ListPrice->Amount . ',';
continue;
}
//Pull sales rank data
echo $items->Products->Product->SalesRankings->SalesRank[0]->Rank . ',';
//Pull pricing data
echo $items->Products->Product->AttributeSets->children('ns2', true)->ItemAttributes->ListPrice->Amount . ',';
}
}
我获取了所有数据,但仅限于一个文件。我不确定我做错了什么。如果有人可以帮助我,我会非常感激。
提前谢谢!我很感激帮助。
答案 0 :(得分:1)
似乎fadeIn()
可能只包含1个值,解释了为什么它只在第一个循环中迭代一次。
当你调用:$groupedArrays
时应该返回一个数组数组(如果有意义的话)。
因此得到的数组看起来像:
array_chunk($singleArray, 5, false);
但是你期待的是:
array(
0 => array(
0 => 0,
1 => 1,
2 => 2,
)
)
我不完全确定这里需要array(
0 => 0,
1 => 1,
2 => 2,
)
。
我会在您创建该阵列后立即通过调用array_chunk
输出您的$groupedArrays
并查看实际存在的内容。
为了获得3个数组,请尝试像这样调用print_r($groupedArrays);
:
array_chunk
这应该会产生类似的结果:
$groupedArrays = array_chunk($singleArray, 1, false);
现在可以使用你的循环按预期迭代3个文件,但这对你的任务来说似乎过于复杂。
答案 1 :(得分:0)
simplemxl值存在问题。即:
$items->Products->Product->SalesRankings->SalesRank[0]->Rank
这在某些xml文件中并不存在。
感谢。