$command[] = "30";
$command[] = "20";
$command[] = "10";
$command[] = "5";
$command[] = "1";
asort($command);
print_r($command);
返回:
数组([0] =>数组([0] => 30 [1] => 20 [2] => 10 [3] => 5 [4] => 1 ))
但我想:
数组([0] =>数组([0] => 1 [1] => 5 [2] => 10 [3] => 20 [4] => 30 ))
我使用的确切代码:
$cmd_id = array();
foreach ($_POST as $k => $v)
{
if($k=='cmd_id' && $v>0)
$cmd_id[] = $v;
}
表单是多个复选框:
<input type="checkbox" name="cmd_id[]" .........
答案 0 :(得分:3)
您的价值似乎是一系列价值观。我假设在您的HTML中,表单中有name="cmd_id[]"
之类的内容。因此,HTTP POST变量cmd_id
将以数组形式到达PHP。
$cmd_id = array();
foreach ($_POST['cmd_id'] as $value) {
if($value > 0) {
$cmd_id[] = $value;
}
}
sort($cmd_id, SORT_NATURAL);
print_r($cmd_id);
答案 1 :(得分:2)
Original anwer:使用arsort。
-
更新:asort用于维护索引,你想要的是正常的sort()。另外,请参阅php手册中的Sorting Arrays
-
更新2: 问题在于如何填充阵列。而是这样做:
if (!empty($_POST['cmd_id'])) {
foreach ($_POST['cmd_id') {
$cmd_id[] = intval($v); # Preferably force ints if you expect ints
}
} else { /* Handle use input failure accordingly */ }
答案 2 :(得分:2)
您可以使用arsort
- 只需反转asort