2016-01-13 103 views
-4

我有此數組的產品:裹每3個從多維數組元素在一個div與特定類

$products = array(
0 => array(
"name" => "product1", 
), 
1 => array(
"name" => "product2", 
), 
2 => array(
"name" => "product3", 
), 
3 => array(
"name" => "product4", 
), 
4 => array(
"name" => "product5", 
), 
5 => array(
"name" => "product6", 
), 
); 

在每一個行我可以有3種產品。我需要將這些產品包裝在類gray_div的div中,其他3種產品包裝在類blue_div的div中。

<div class="gray_div"> 
product1 product 2 product 3 
</div> 

<div class="blue_div"> 
product4 product 5 product 6 
</div> 
+1

還有,你才能嘗試實現這一目標? – Epodax

+0

只是一個簡單的foreach,我設法顯示所有,但我不知道如何從數組中按每3個元素分隔div。 – user3478639

+0

@ Y.Hermes你有什麼反對'$ product [1] [「name」]' – RiggsFolly

回答

2

在PHP

$newArray = array_chunk($products, 3); 
foreach ($newArray as $key => $product) { 
    echo '<div class="'.(($key % 2) ? "blue_div" : "gray_div").'">'; 
    foreach ($product as $p) { 
     echo $p['name']." "; 
    } 
    echo '</div>'.PHP_EOL; 
} 
+0

謝謝!但是這隻會增加class gray_div的div,我如何在每3種產品上交替使用div類? div與類gray_div,計數3個產品後,接下來的3個產品包裝在類blue_div的div? – user3478639

+0

我已更新我的帖子。 – Pr07o7yp3

1

檢查array_chunk()使用array_chunkarray_walk_recursive拼合塊,並把一切都一氣呵成。

$chunks = array_chunk($products,3); 

foreach($chunks as $key=>$chunk){ 

    $products = []; 

    array_walk_recursive($chunk, function($value) use (&$products) { 
     $products[] = $value; 
    }); 


    if ($key%2==0){ 
     $color = 'gray'; 
    } 
    else{ 
     $color = 'blue'; 
    } 

    print '<div class="' . $color . '_div">' . implode(' ',$products) . '</div>' . PHP_EOL; 
} 

將輸出

<div class="gray_div">product1 product2 product3</div> 
<div class="blue_div">product4 product5 product6</div> 
相關問題