0

複数の MySQL の結果をクエリして保存する多次元配列を実行時に作成しようとしています。たとえば、次のようなテーブルがあるとします (これは架空のものなので、例を取り上げないでください)。

**store--tag--color--size**
1--101--blue--s
2--102--red--s
2--103--yellow -- m
3--104--blue--m

店舗ごとにすべての製品を格納する多次元配列を作成する必要があります。私が望む結果は次のとおりです。

$storeArray = array[[[101],[blue],[s]],[[102,103],[red,yellow],[s,m]],[[104],[blue],[m]]];

ここに私が持っているコードがあります:

$counter = 0;
foreach($storeIDs as $item){
   $result = mysql_query('select whatever');
   $rows = mysql_num_rows($result);
   for($i=0;$i<$rows;$i++){
      $tag[$i]       = mysql_result(); 
      $color[$i]     = mysql_result(); 
      $size[$i] = mysql_result(); 
  }
$tempArray = array($tag,$,$color,$size);
$storeArray[$counter] = $tempArray;
unset($tempArray);
$counter++;
}

問題は、$tempArray の設定を解除したとしても、キャプチャする必要がある 3 番目のループです。

[[104],[青],[m]]

実際に保管する

[[104,103],[青,黄],[m,m]].

$tempArray を array() または array(array()) に設定しようとしました。2 番目のループからのデータは、サイズが小さい将来の反復に常にスピルオーバーします。

$storeArray を上記の目標のようにするにはどうすればよいですか?

ありがとうございました

4

1 に答える 1

1

$tmpArray の設定を解除していますが、$tag、$color、$size も設定解除する必要があるようです。少し異なるデータ構造を使用したより良いアプローチがありますが、これを試しましたか?

unset($tempArray,$tag,$color,$size);

事実上、2 つの項目を持つループで $tag[0] と $tag[1] を設定できます。次に、項目が 1 つのループに対して $tag[0] を更新しますが、$tag[1] は設定されたままです。

于 2013-10-31T17:16:34.530 に答える