首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反求结果

反求结果
EN

Stack Overflow用户
提问于 2013-08-02 12:47:51
回答 3查看 1.7K关注 0票数 0

很简单,但我很困惑!这就是:

代码语言:javascript
复制
$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 ))

我使用的确切代码:

代码语言:javascript
复制
$cmd_id = array();

foreach ($_POST as $k => $v)
{
    if($k=='cmd_id' && $v>0)
        $cmd_id[] = $v;
}

表单是多个复选框:

代码语言:javascript
复制
<input type="checkbox" name="cmd_id[]" .........
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-02 12:56:59

您的价值似乎是一组值。我假设在HTML中,表单中有类似于name="cmd_id[]"的内容。因此,HTTP变量cmd_id将以数组形式到达PHP。

代码语言:javascript
复制
$cmd_id = array();

foreach ($_POST['cmd_id'] as $value) {
    if($value > 0) {
        $cmd_id[] = $value;
    }
}

sort($cmd_id, SORT_NATURAL);

print_r($cmd_id);
票数 2
EN

Stack Overflow用户

发布于 2015-06-25 06:33:44

您可以使用arsort -只需反向版本的asort

票数 3
EN

Stack Overflow用户

发布于 2013-08-02 12:49:26

使用阿索德

--

Update: asort用于维护索引,您需要的是普通的排序()。另外,请参阅php手册中的排序阵列

--

更新2:问题在于如何填充数组。相反,请这样做:

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18017263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档