請教各位
我在迴圈中使用array_unique這語法,echo 後發現去除重複的資料都跑到陣列的最後面
我試過以下兩種方法,都沒辦法改變排序(都還是排在最後...)
1.asort($array);
2.array_multisort($array);
程式碼如下 :
<?php
while($row = $result->fetch(PDO::FETCH_ASSOC)){
$final = array_unique($row);
$result_1 = $pdo->query($sql);
while($row_1 = $result_1->fetch(PDO::FETCH_ASSOC)){
$bbb = round((strtotime(substr($row_1['end_at'], 0, 17) . "00") - strtotime(substr($row_1['start_1'], 0, 17) . "00")) / (60), 2);
if($final['arbpl'] ==$row_1['arbpl']){
$final['total_time'] += $bbb ;
}
}
if($final['arbpl']=='' and $final['total_time']==''){
continue;
}
if($final['total_time']==''){
$final['total_time'] === 0;
}
echo "['".$final{'arbpl2'}."',".$final{'total_time'}."],";
}
?>
我的解決方式如下 : 串空白字串判斷資料是否出現過
何不試試在 SQL下 Order by
用sql資料來下sql。
你真的有一顆很大的心。
從程式內看不到你用 asort 的地方。
但我估計你誤會了asort的用法。
不過你有找到 array_multisort 的方法還不錯。
只是這個函數的用法比較特殊。你需要一個補助陣列來使用。
要不然二維性的東西並不好排序。
如果可以,請將你比較完整的做法貼出來。
目前單單從你的資料中,我沒辦法給你正常答案。
畢竟你也沒說你要依??做排序依據。
另外附帶一提,理論上,你這的確可以在sql內就可以搞定。不需要在程式上做排序了。
跳拖一下自已的錯誤思維,把人家說的想進去一下吧。