2012-02-29 62 views
2

我有一個數組,其中包含三個相似命名項的集合;然而,有時一套中只有兩件物品,我想把它們叫出來。數組中類似項目的計數量,如果在3以下返回值

<?php 
$items = array(
'reviewpitfighter-1.138x88.jpg', 
'reviewpitfighter-2.138x88.jpg', 
'reviewpopfulmailsegacd-1.138x92.jpg', 
'reviewpopfulmailsegacd-2.138x76.jpg', 
'reviewpopfulmailsegacd-3.138x97.jpg' 
); 
?> 

您會注意到有兩個reviewpitfherher *項目和三個reviewpopfulmailsegacd *項目。我已經開始了一個循環的兔子洞,並覺得有一些簡單的東西,我只是在塗鴉。

回答

0

下面是我提出的解決方案,對不起它需要很長時間才能發佈。

foreach($images as $value){ 
    $lastItem = explode('-', $images[$count - 1]); 
    $parts = explode('-', $value); 
    if(preg_match('/^1/', $parts[1]) && $count != 0){ 
     if(preg_match('/^2/',$lastItem[1])){ 
      $imgurl = preg_replace('/^p?review/','',$lastItem[0]); 
      $sql = 'SELECT field FROM table WHERE field = "' . $imgurl . '"'; 
      $result = $dbConn->FetchArray($dbConn->Query($sql), MYSQL_ASSOC); 
      $array[$imgurl] = $result; 
     } 
    } 
    $count++; 
} 

我得到的所有圖像的數組,然後我檢查,看看是否我期待在第一形象,如果我然後我看到,如果我看了最後圖像是第二圖像。此時,我會調用數據庫來獲取一些信息,以顯示一條整齊的信息,列出哪些評論缺少第三張圖片。最後$array包含這個列表,我可以循環。

1

也許你可以做爲一個2階段的過程。

階段1:

循環通過原陣列並且形成與其作爲這種原始陣列的值的密鑰另一組陣列。然後在每個新陣列中保存重複計數。

階段2:

循環遍歷組新的陣列,然後挑選出具有值小於3的陣列和檢索其密鑰。

希望這有助於!

相關問題