作者ybite (小犬)
看板PHP
標題Re: [請益] 陣列比大小
時間Sat Aug 9 17:49:54 2008
※ 引述《jkhunter (我不配)》之銘言:
: 三個陣列
: 想要讓它用price 來排序 由小到大
: $a=array($row["picture"]);
: $b=array($row["name"]);
: $c=array($row["price"]);
: 結果
: 會變成這樣
: a圖片 鉛筆 10
: b圖片 書本 20
: c圖片 飲料 30
先回答問題,我試著這樣理解
$a = array('a.png', 'b.png', 'c.png', 'd.png');
$b = array('book','cd','dvd','other');
$c = array(20,10,30,50);
如果是這樣array_multisort可以解決你的煩惱,而且是一行解決
array_multisort($c, SORT_ASC, $b, SORT_STRING, $a);
PHP手冊:
http://tw.php.net/array_multisort
這個函數的強大連我自己實際看到跑一次都有點嚇到...
---
我一直覺得把array結構想得有點奇怪
一般而言不是會這樣設計嗎?
$data = array(
array('picture' => 'A圖片.png', 'name' => '鉛筆', 'price' => 10),
array('picture' => 'B圖片.png', 'name' => '書本', 'price' => 20),
);
/* 這樣子$data[0][picture] = 'A圖片' */
是否有任何不可抗拒的原因使你一定得用$a,$b,$c的方式排序?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.170.59.6
※ 編輯: ybite 來自: 218.170.59.6 (08/09 17:51)
推 jkhunter :好像大大建議的那種陣列排序會比較好 08/10 16:19
推 jkhunter :我用大大內建的字串可以排序 08/10 16:59
→ jkhunter :從資料庫讀出來就 不太能排序 08/10 16:59