PHP:如何将foreach数组索引$ key count更改为1而不是0

时间:2016-08-05 14:41:18

标签: javascript php mysql

我有一个带有数组值的foreach循环,我的问题是我需要让$ key的值从1开始而不是0。

我的代码

multiprocessing.Lock

输出

if(isset($_POST['sp_criteria'])){
        $sp_criteria = $_POST['sp_criteria'];
        $sp_criterias = array();
        $count = 1;
        foreach ($sp_criteria as $key => $value) {
            $sp_criterias[$count] = $value;
            $count++;
        }
    }

我如何让它像这样?

[0] - 10 sp_criteria
[1] - 15 sp_criteria
[2] - 15sp_criteria
[3] - 20 sp_criteria
[4] - 25 sp_criteria
[5] - 15 sp_criteria

5 个答案:

答案 0 :(得分:0)

为什么你不去($ key + 1)有什么特别的原因:

if(isset($_POST['sp_criteria'])){
    $sp_criteria = $_POST['sp_criteria'];
    $sp_criterias = array();
    $count = 1;
    foreach ($sp_criteria as $key => $value) {
        $sp_criterias[$count] = $value;
        echo $value." - ".($key + 1)." sp_criteria<br/>";
        $count++;
    }
}

答案 1 :(得分:0)

变化:

if(isset($_POST['sp_criteria'])){
        $sp_criteria = $_POST['sp_criteria'];
        $sp_criterias = array();
        $count = 1;
        foreach ($sp_criteria as $key => $value) {
            $sp_criterias[$count] = $value;
            echo $value." - ".$key." sp_criteria<br/>";
            $count++;
        }
    }

为:

if(isset($_POST['sp_criteria'])){
        $sp_criteria = $_POST['sp_criteria'];
        $sp_criterias = array();
        $count = 1;
        foreach ($sp_criteria as $key => $value) {
            $sp_criterias[$count] = $value;
            echo $value." - ". ( $key + 1 ) ." sp_criteria<br/>";
            $count++;
        }
    }

答案 2 :(得分:0)

    echo $value." - ".(int)$key+1." sp_criteria<br/>";

如果您的密钥始终为数字,则可以使用更简单的用于循环,而不是 foreach

答案 3 :(得分:0)

只需输入foreach循环$ key ++;

答案 4 :(得分:0)

当然,您无法修改数组的索引。但你可以取消你的数组,然后取消设置第一项。

array_unshift($sp_criteria, '');
unset($sp_criteria[0]);

或者您可以创建一个从1开始的数组,如下所示:

$sp_criteria = [1 => 'a', 'b', 'c'];

但我不是这种方式的粉丝。通常,数组从0开始,我们应该始终保持这种一致性。如果某些数组从0开始而其他数组从1开始,则很难处理它们。有时您认为using数组从1开始,但实际上它从0开始。因此,这可能会导致意外错误。