2016-05-20 8 views
-1

私はこれを検索しましたが、それを見つけることができず、シンプルでなければなりませんでしたが、現在はクロスセーミングされています。私を許してください - 私は数ヶ月しかこれをしていません。カウンター内にカウンターが必要です

私は、1回のループで$ Id1と$ Id2、次に$ Id3、次に$ Id4などと、そして2回目のループで$ Id2とペアをとるように、カウンタ内にカウンタが必要です。 $ Id3、$ Id4、$ Id5など。私はSQLクエリからIDを取得してから、それらの両方を使って関係の計算を実行しますが、最初にこれらの2つのループを実行する構造が必要です。もう片方。助けと忍耐をありがとう。

編集は私がこれまで持っているものを追加するには:

$collection = []; 

$sql = 'SELECT id, name FROM table';                                                                                       
$result = mysql_query($sql); 


while($row = mysql_fetch_assoc($result)) 

    {   
     $collection[] = $row; 
    } 
     $ct = count($collection); 
     for ($i = 0; $i < $ct; $i++)     
     { 

      $Id1 = $collection[$i]['id'];  
      for ($j = 0; $j < $ct; $j++) 
       { 
        $Id2 = $collection[$j]['id']; 
        if($Id1 != $Id2){ 
        echo 'IDs: ' . $Id1 . ' ' . $Id2 . '<br>'; 
        } 

       } 

     }   

} 
+0

あなたはそれを最初に試してその結果を投稿するつもりはありませんか?あなたの目標を説明するのに大いに役立ちます。 – ExcellentSP

+0

はい、あなたが話していることを誰も知らないからです。 – AbraCadaver

+0

は私が持っているものを含むように編集されました。ごめんなさい。 – ngtess

答えて

0

あなたはこのような配列にクエリからのIDを取得した場合:$ids = [1,2,3,4,5,6,7,8];、あなたがarray_chunkを使用してペアのリストを取得することができ、その後、オフシフト配列が空になるまでこのプロセスを繰り返します。

while ($ids) {       // repeat until empty 
    $pairs = array_chunk($ids, 2);  // split into pairs 
    foreach ($pairs as $pair) { 
     if (count($pair) == 2) {  // verify that you have a pair (last element will 
             // have only one item when count($ids) is odd) 
      var_dump($pair);   // do something with your pair of IDs 
     } 
    } 
    $remove_first = array_shift($ids); // shift off the first ID 
} 

このようarray_shiftを使用すると、あなたの入力配列を破壊することに注意してください、あなたは同様にそれで何かを行う必要がある場合は、このアプローチを使用する前に、そのコピーを作成してください。