重新排列(重新排序,排序)阵列,你所希望的方式PHP
问题描述:
我有导致像这样的数组: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