2012-02-29 10 views
2

3つの同様の名前付き項目のセットを含む配列があります。ただし、時には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' 
); 
?> 

reviewpitfigher *アイテムとreviewpopfulmailsegacd *アイテムが2つあります。私はループのウサギの穴を開けて、単純なものがあると感じています。

答えて

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++; 
} 

私はそれからだ場合、私は見て最後の画像は、第二の画像だった場合、私は見、そして私は、私は最初の画像を見てるかどうかをチェックし、すべての画像の配列を取得します。この時点で、私はデータベースに電話して、レビューが第3のイメージを欠いているかどうかをきれいに伝えるための情報を得る。最後に$arrayにはこのリストが含まれていますが、これをループすることができます。

1

これは2段階のプロセスとして実行できますか。

段階1:元の配列を介して

ループと、この元の配列の値としてそのキーを持つアレイの別のセットを形成します。次に、これらの新しい配列のそれぞれに反復回数を保存します。

ステージ2:

アレイの新しいセットをループし、その後は3未満の値を持つ配列を選ぶと、そのキーを取得します。

これが役立ちますように!

関連する問題