PHP對等迴圈,線上等,在加100分

來源:互聯網
上載者:User
csdn 無法上傳圖片,資料表結構圖片看百度知道吧
http://zhidao.baidu.com/question/1047510947746416459.html
這是我的資料表結構,PHP+MYSQL 。我想實現出迴圈這樣的效果

尺碼 顏色 圖案

36 紅色 印花

36 紅色 平板

36 白色 印花

36 白色 平板

36 黑色 印花

36 白色 平板

37 紅色 印花

37 紅色 平板

依次類推, 但是尺碼、顏色、圖案 並不是固定的,有可能 只有兩個 如

尺碼 顏色

36 紅色

36 白色

36 黑色

37 紅色

37 白色

。。。。。。 等

也有可能有4個 如 尺碼 、顏色、圖案、其它

這樣用表格的格式迴圈 要怎麼迴圈啊。。。我現在用FOR可以迴圈出來,但是只能是固定的,不能自由選擇。


回複討論(解決方案)

你的尺碼 、顏色、圖案 的值都是在一個欄位裡的嗎?用什麼分隔的?資料類型是什嗎?

看看這個測試例,你應該會知道怎麼做了

create temporary table a (`尺碼` varchar(10)) charset gbk;insert into a values (36),(37);create temporary table b (`顏色` varchar(10)) charset gbk;insert into b values ('紅'),('白'),('藍'),('黑');create temporary table c (`圖案` varchar(10)) charset gbk;insert into c values ('印花'),('平板');select * from a,b,c;
尺碼 顏色 圖案 36   紅  印花 37   紅  印花 36   紅  平板 37   紅  平板 36   白  印花 37   白  印花 36   白  平板 37   白  平板 36   藍  印花 37   藍  印花 36   藍  平板 37   藍  平板 36   黑  印花 37   黑  印花 36   黑  平板 37   黑  平板 

針對每個產品,首先把有的列出來。
例如尺碼、顏色、圖案 則會有3個數組, size,color,pattern。
例如尺碼、顏色則只有兩個數組。

然後迴圈。

你的尺碼 、顏色、圖案 的值都是在一個欄位裡的嗎?用什麼分隔的?資料類型是什嗎?


尺碼 顏色 圖案 分別在三條記錄裡。比如 尺碼的所有值都在一個欄位裡 用 \n 分開的

針對每個產品,首先把有的列出來。
例如尺碼、顏色、圖案 則會有3個數組, size,color,pattern。
例如尺碼、顏色則只有兩個數組。

然後迴圈。



現在可以分為三個數組了,但是我就是不會迴圈啊

$ar = array(  array( "A",  "B",  "C"),  array("1",  "2",  "3", "4"),  array("X",  "Y",  "Z"),);print_rDescartes($ar));function Descartes($d) {  $r = array_pop($d);  while($d) {    $t = array();    $s = array_pop($d);    if(! is_array($s)) $s = array($s);    foreach($s as $x) {      foreach($r as $y) $t[] = array_merge(array($x), is_array($y) ? $y : array($y));    }    $r = $t;  }  return $r;}

$ar = array(  array( "A",  "B",  "C"),  array("1",  "2",  "3", "4"),  array("X",  "Y",  "Z"),);print_rDescartes($ar));function Descartes($d) {  $r = array_pop($d);  while($d) {    $t = array();    $s = array_pop($d);    if(! is_array($s)) $s = array($s);    foreach($s as $x) {      foreach($r as $y) $t[] = array_merge(array($x), is_array($y) ? $y : array($y));    }    $r = $t;  }  return $r;}



分都給您了。謝謝您幫了我
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.