2015-12-30 232 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文件中並不存在。

謝謝。