我有導致像這樣的數組:A = laranja B =香蕉C =馬卡d =笠帽重新排列(重新排序,排序)陣列,你所希望的方式PHP
現在我要重新排序,但沒有合乎邏輯的東西,比如d,c,b,a。 我想重新排列我想要的方式。可以是a,d,c,b或c,a,b,d。
我試過sort,multisort,但沒有成功。
有沒有一些建議?
我粘貼一些代碼 here,看看它有助於
我有導致像這樣的數組:A = laranja B =香蕉C =馬卡d =笠帽重新排列(重新排序,排序)陣列,你所希望的方式PHP
現在我要重新排序,但沒有合乎邏輯的東西,比如d,c,b,a。 我想重新排列我想要的方式。可以是a,d,c,b或c,a,b,d。
我試過sort,multisort,但沒有成功。
有沒有一些建議?
我粘貼一些代碼 here,看看它有助於
$yourArray;
sort($yourArray);
print_r($yourArray);
// Now alphabetical
此外,如果你寫一個函數不過你想要的值進行排序,使用usort()
<?php
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
$a = array(3, 2, 5, 6, 1);
usort($a, "cmp");
foreach ($a as $key => $value) {
echo "$key: $value\n";
}
?>
0: 1
1: 2
2: 3
3: 5
4: 6
編輯:
您的foreach語句是kaput。
<?php
function cmp($a, $b)
{
if ($a == $b)
{
return 0;
}
return ($a < $b) ? -1 : 1;
}
$a = array("d"=>"limao", "a"=>"laranja", "b" =>"banana", "c"=>"maçã");
print_R($a);
usort($a, "cmp");
print_R($a);
?>
輸出:
Array
(
[d] => limao
[a] => laranja
[b] => banana
[c] => maçã
)
Array
(
[0] => banana
[1] => laranja
[2] => limao
[3] => maçã
)
你可能需要添加一個名爲像sort_order
其中有一個數字重量陣列中的另一個入口,和排序通過。
像:
Array (
Array ('name' => 'test', 'sort' => 1),
Array ('name' => 'test test', 'sort' => 2)
);
正是你嘗試什麼? 'array_multisort'似乎做你想要的。確保您正確閱讀文檔並瞭解其工作原理。 – 2012-07-19 11:21:22
你的代碼只是打印出數組。從問題或代碼中不清楚你想要達到的目標。 – Gareth 2012-07-19 11:22:16
我知道這不是一個聰明的問題,但我試圖重新編碼,但它不是通過ASC或DESC,它也不是隨機的。我想按照我想要的方式排列。數據來自數據庫。我不知道我是否可以在sprintf select中做到這一點,但我仍然無法找到如何做到這一點。 – JGSilva 2012-07-19 11:30:21