[請益] 比較兩個陣列,依序抽值(已解決)
$array=array(&$_SESSION[a],&$_SESSION[b]);
$min=&$array[0];//先假設為第一個
for($i=0;$i<count($array);$i++){
if(!count($array[$i])){
array_splice($array,$i,1);
$i--;
}else{
if($array[$i][0]['price'] < $min[0]['price']){
$min=&$array[$i];
}
}
}
$_SESSION[result]=$min[0];
array_shift($min);
==
上面這一小段會呼叫好幾次
$_SESSION[a]跟$_SESSION[b]
分別都是陣列,而且順序各是從小到大
現在想要將$_SESSION[result]定義成這裡面的最小值
所以照理說應該是各比較一次兩個的[0]元素就好
問題是不知道哪邊有問題
好像都只把$array[0]的東西印完
明明有設定splice條件的說
請問是哪裡出了問題?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.62.93.151
→
08/09 22:19, , 1F
08/09 22:19, 1F
→
08/09 22:43, , 2F
08/09 22:43, 2F
→
08/09 22:43, , 3F
08/09 22:43, 3F
→
08/09 22:44, , 4F
08/09 22:44, 4F
→
08/09 22:47, , 5F
08/09 22:47, 5F
→
08/09 22:50, , 6F
08/09 22:50, 6F
→
08/09 22:57, , 7F
08/09 22:57, 7F
→
08/09 22:57, , 8F
08/09 22:57, 8F
→
08/09 22:58, , 9F
08/09 22:58, 9F
→
08/09 22:58, , 10F
08/09 22:58, 10F
→
08/09 22:58, , 11F
08/09 22:58, 11F
→
08/09 23:09, , 12F
08/09 23:09, 12F
自己找出解答了...
問題出在 $min=&$array[0]; 這行
每次迴圈呼叫的時候,先假設是$array[0]最小
問題是splice($array,$i,1)的時間點在後面
導致有時下一圈的時候$array[0]是空陣列
然後$min[0]無法比較,就出問題了(死
解決方法是先在前面splice一次
然後才設定$min就沒問題了
※ 編輯: KawasumiMai 來自: 61.62.93.151 (08/10 00:13)
→
08/10 00:23, , 13F
08/10 00:23, 13F
→
08/10 00:24, , 14F
08/10 00:24, 14F
PHP 近期熱門文章
PTT數位生活區 即時熱門文章