2014-07-01 32 views
-2

我在顯示頁面中的某些產品時遇到問題, 產品必須按類別排列,其中ID爲101到199一起顯示,其他ID爲201-299必須安排在另一個不同的類別中。PHP陣列:回顯一系列ID

這裏是我的代碼切:

<div id="container"> 
<div class="wrapper"> 

<ul class="products"> 
    <?php foreach /*Product IDs 101-199 */ 
     ($products as $product_id => $product) { 
     echo "<li>";  
     echo '<a href="item.php?id=' . $product_id . '">'; 
     echo '<img src="' . $product["img"] . '"" alt="' . $product["name"] . '" class="imgres">';  
     echo '<p id="det">Dettagli</p>'; 
     echo "</a>"; 
     echo "</li>"; 
} ?> 

</ul> 
<ul class="products2"> 

    <?php /* Here goes the 201-299 items */ 


    ?> 

</ul> 

數組文件在include目錄,列出名字,圖片和細節。

對於第一類產品,ID從101開始到199,對於第二類產品,ID從101開始到199。

這裏是更正的代碼,顯示項目不正確。

<?php foreach                /*Product IDs 101-199 */ 
     ($products as $product_id => $product) { 
      if ($product_id >= 101 || $product_id <= 199) { 
       echo '<ul class="products">'; 
       echo "<li>";  
       echo '<a href="item.php?id=' . $product_id . '">'; 
       echo '<img src="' . $product["img"] . '"" alt="' . $product["name"] . '" class="imgres">';  
       echo '<p id="det">Dettagli</p>'; 
       echo "</a>"; 
       echo "</li>"; 
       echo '</ul>'; 
      } 
      elseif ($product_id >= 201 || $product_id <= 299) {     /*Product IDs 201-299 */ 
       echo '<br>'; 
       echo '<ul class="products2">';  
       echo "<li>";  
       echo '<a href="item.php?id=' . $product_id . '">'; 
       echo '<img src="' . $product["img"] . '"" alt="' . $product["name"] . '" class="imgres2">';  
       echo '<p id="det">Dettagli</p>'; 
       echo "</a>"; 
       echo "</li>"; 
       echo '</ul>'; 
      } 
       } ?> 

這裏的產品陣列文件:

<?php $products = array(); 
$products[101] = array (
    "name" => "Lusso", 
    "art" => "02", 
    "weight" => "110 g", 
    "size" => "45x70", 
    "img" => "img/prod/lux1.png", 
    "desc" => "Strofinaccio a composizione non determinata (DL. 883/79)", 
); 
$products[102] = array (
    "name" => "Fatto", 
    "art" => "08", 
    "weight" => "130 g", 
    "size" => "45x65", 
    "img" => "img/prod/fat1.png", 
    "desc" => "Strofinaccio a composizione non determinata (DL. 883/79)", 
); 
$products[103] = array (
    "name" => "Rigati", 
    "art" => "04", 
    "weight" => "80 g", 
    "size" => "45x65", 
    "img" => "img/prod/rig1.png", 
    "desc" => "Strofinaccio a composizione non determinata (DL. 883/79)", 
); 
$products[104] = array (
    "name" => "Giganti", 
    "art" => "05", 
    "weight" => "150 g", 
    "size" => "45x90", 
    "img" => "img/prod/gig1.png", 
    "desc" => "Strofinaccio a composizione non determinata (DL. 883/79)", 
); 

$products[105] = array (
    "name" => "Bandiera", 
    "art" => "20", 
    "weight" => "120 g", 
    "size" => "45x75", 
    "img" => "img/prod/ban1.png", 
    "desc" => "Strofinaccio a composizione non determinata (DL. 883/79)", 
); 

$products[106] = array (
    "name" => "Scozzesi", 
    "art" => "12", 
    "weight" => "90 g", 
    "size" => "45x65", 
    "img" => "img/prod/sco1.png", 
    "desc" => "Strofinaccio a composizione non determinata (DL. 883/79)", 
); 

/* FILATI */ 
/*$products2 = array();*/ 

$products[201] = array (
    "name" => "Filato Super Candido", 
    "art" => "50", 
    "weight" => "10 g/m", 
    "size" => "50pz +", 
    "img" => "img/prod/scd1.png", 
    "desc" => "Filato a composizione non determinata (DL. 883/79)", 
); 

$products[202] = array (
    "name" => "Filato Rossino", 
    "art" => "50", 
    "weight" => "10 g/m", 
    "size" => "50pz +", 
    "img" => "img/prod/scd1.png", 
    "desc" => "Filato a composizione non determinata (DL. 883/79)", 
); 
?> 
+0

那麼,什麼是您的實際問題?什麼不適合你?你嘗試了什麼? – Steve

+0

現在的項目都顯示在一起,所以我必須提供一個代碼,以顯示在「產品」div中的這些id的範圍和在第二個div中的第二個ID範圍稱爲「products2」 – andreyo

回答

1

您可以創建兩個不同的陣列/對象爲兩個部分。你可以按照下面的代碼:

<?php 

$firstArray = array(); 
$secondArray = array(); 
foreach ($products as $product_id => $product) { 
if($product_id >=101 || $product_id <= 199) 
{ 
    $firstArray[$product_id] = $product; 
} 
else if($product_id >= 201 || $product_id <= 299) 
{ 
    $secondArray[$product_id] = $product; 
} 

?> 

現在你可以在產品div顯示$ firstArray和$ secondArray在產品2格。

<ul class="products"> 
<?php foreach($firstArray as $product_id => $product) { 
     echo "<li>";  
     echo '<a href="item.php?id=' . $product_id . '">'; 
     echo '<img src="' . $product["img"] . '"" alt="' . $product["name"] . '" class="imgres">';  
     echo '<p id="det">Dettagli</p>'; 
     echo "</a>"; 
     echo "</li>"; 
} ?> 
</ul> 

<ul class="products2"> 
<?php foreach($secondArray as $product_id => $product) { 
     echo "<li>";  
     echo '<a href="item.php?id=' . $product_id . '">'; 
     echo '<img src="' . $product["img"] . '"" alt="' . $product["name"] . '" class="imgres">';  
     echo '<p id="det">Dettagli</p>'; 
     echo "</a>"; 
     echo "</li>"; 
} ?> 
</ul> 
+0

謝謝,代碼提供的作品,我不知道是否是一個錯誤,但它顯示所有內聯項,即使我已經爲div設置了另一個類。 我會更新第一個帖子白衣當前代碼。 – andreyo

+0

你可以發佈你的當前循環嗎? –

+0

你認爲數組文件?我已在更新回答 – andreyo

0
<ul class="products"> 
    <?php foreach($products as $product_id => $product): 

     if($product_id > 200): ?> 

      </ul> 
      <ul class="products2"> 

     <?php endif;?> 

     <li> 
     <a href="item.php?id=<?php echo $product_id;?>"> 
      <img src="<?php echo $product["img"];?>" alt="<?php echo $product["name"];?>" class="imgres"> 
      <p id="det">Dettagli</p> 
     </a> 
     </li> 
    <?php endforeach;?> 

</ul>