很简单,但我很困惑!这就是:
$command[] = "30";
$command[] = "20";
$command[] = "10";
$command[] = "5";
$command[] = "1";
asort($command);
print_r($command);返回:
阵列( =>数组( => 30 1 => 2 0 2 => 10 3 => 5 4 => 1))
但我想:
阵列( =>数组( => 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[]" .........发布于 2013-08-02 12:56:59
您的价值似乎是一组值。我假设在HTML中,表单中有类似于name="cmd_id[]"的内容。因此,HTTP变量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);发布于 2015-06-25 06:33:44
您可以使用arsort -只需反向版本的asort
发布于 2013-08-02 12:49:26
使用阿索德。
--
Update: asort用于维护索引,您需要的是普通的排序()。另外,请参阅php手册中的排序阵列。
--
更新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 */ }https://stackoverflow.com/questions/18017263
复制相似问题