2013-04-12 66 views
1

經與foreach循環內爆若干陣列的一個小問題。爆一個陣列然後移動到下一個陣列

的陣列看起來像這樣的時刻。

Array (
[0] => Array ([img] => /Content/ProductImages/big/9414339613250.jpg [prodtitle] => Heineken Lager 330ml Btls [unit] => 12pk [price] => [wasprice] => 26.99 [specprice] =>  ) 
[1] => Array ([img] => /Content/ProductImages/big/7501064191367.jpg [prodtitle] => Corona Extra Beer 355ml Bottles [unit] => 12pk [price] => [wasprice] => 26.99 [specprice] => 22.99)  
[2] => Array ([img] => /Content/ProductImages/big/9414774095307.jpg [prodtitle] => Steinlager Lager 330ml Btls [unit] => 12pk [price] => [wasprice] => 23.99 [specprice] => 21.99) 

然而foreach循環中只內爆的第1個數組的次數循環已經去了:我希望它通過每個陣列移動

/Content/ProductImages/big/9414339613250.jpg','Heineken Lager 330ml Btls ','12pk ','','26.99','20.99 
/Content/ProductImages/big/9414339613250.jpg','Heineken Lager 330ml Btls ','12pk ','','26.99','20.99 
/Content/ProductImages/big/9414339613250.jpg','Heineken Lager 330ml Btls ','12pk ','','26.99','20.99 

。數字或數組不是特定的,因爲可能會添加或減少項目。

/Content/ProductImages/big/9414339613250.jpg','Heineken Lager 330ml Btls ','12pk','','26.99','20.99 
/Content/ProductImages/big/7501064191367.jpg','Corona Extra Beer 355ml Bottles ','12pk ','','26.99','22.99 

整個代碼看起來是這樣的:

$html = file_get_html($url); 

foreach($html->find('div.product-details-contents') as $content) { 
    $detail['img'] = $content->find('img.product-details-image',0)->src; 
    $detail['prodtitle'] = $content->find('span.title', 0)->plaintext; 
    $detail['unit'] = $content->find('span.unit-size', 0)->plaintext; 
    $detail['price'] = filter_var($content->find('span.price', 0)->plaintext, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_THOUSAND); 
    $detail['wasprice'] = filter_var($content->find('span.was-price', 0)->plaintext, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_THOUSAND); 
    $detail['specprice'] = filter_var($content->find('span.special-price', 0)->plaintext, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_THOUSAND); 

    $product[] = $detail; 

    $sqlstring = implode("','", $product[0]); 
    echo $sqlstring; 
} 
print_r($product); 

而且當$sqlstring = implode("','", $product[0]);$product[0]在數量增加時,它給錯誤,如:

警告:破滅()[函數。 implode]:傳遞的參數無效。

+0

我不理解你的問題非常好。你需要爆炸你有的子陣列嗎?如果是的話,我想你可以拿上array_map功能看看。 – GarouDan

+0

是啊抱歉的是,是啊,我想我的爆子排列了一個又一個漂亮多了。 – DrDog

回答

1

你說,只有第一個陣列正在崩盤。那麼,因爲它看起來如此:

$sqlstring = implode("','", $product[0]); 

代碼的這種安寧總是破壞產品數組的第一個元素。爲什麼 沒有做像水木清華:

$sqlstring = implode("','", $detail); 
相關問題