2015-12-30 236 views
1

当我通过我的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

'$ groupedArrays'包含什么? – segFault

+0

$ groupedArrays是数组的数组。 – McStuffins

回答

1

看来$groupedArrays可能只包含1个值,说明它为什么只在第一个循环中迭代一次。

当你调用:array_chunk($singleArray, 5, false);应该返回一个数组数组(如果有意义的话)。

所以结果数组将类似于:

array(
    0 => array(
     0 => 0, 
     1 => 1, 
     2 => 2, 
    ) 
) 

然而,你期待这样的:

array(
    0 => 0, 
    1 => 1, 
    2 => 2, 
) 

我不能完全肯定array_chunk这里需要的。

在创建该数组之后,我会首先通过调用print_r($groupedArrays);输出您的$groupedArrays,然后查看实际存在的数据。


为了得到3个阵列,尝试调用array_chunk这样的:

$groupedArrays = array_chunk($singleArray, 1, false); 

这将导致类似:

array(
    0 => array(
     0 => 0, 
    ), 
    1 => array( 
     0 => 1, 
    ), 
    2 => array(
     0 => 2, 
    ) 
) 

那现在将与您的循环工作,以迭代通过预期的3个文件,但是这对你的任务似乎过于复杂。

+0

$ groupedArrays是我们有多少文件的值,但我会试一试。谢谢! – McStuffins

+0

哦,所以$ groupedArrays不是一个数组,而是一个整数?在这种情况下,只需删除for循环中的count()。 – segFault

+0

是否需要对文件数进行计数。我会在问题中发布更多我的代码。 – McStuffins

0

simplemxl值存在问题。即:

$items->Products->Product->SalesRankings->SalesRank[0]->Rank 

这在某些xml文件中并不存在。

谢谢。