在php中的特定键之后获取所有数组键

时间:2016-10-18 12:14:31

标签: php arrays

我有一个像这样的数组,

$ptJson = {
    ["phoneSMS1"]=> "mobile",
    ["phoneSMS2"]=> "mobile",
    ["phoneSMS3"]=> "mobile",
    ["phoneSMS4"]=> "mobile",
    ["phoneSMS5"]=> "main"
}

我必须删除phoneSMS3,因此我使用unset取消设置密钥

unset($ptJson['phoneSMS3']);

效果很好。! 现在我想将休息键提升一级,但不知道如何。 搜索但没有运气。

那么,如何在phoneSMS3之后找到其余的数组键?

4 个答案:

答案 0 :(得分:2)

for($i = 2; $i < count($ptJson); $i++){
  $ptJson[$i] = 'phoneSMS'.($i+1);
}

这就是你如何能够接受它你应该使用它更通用的

答案 1 :(得分:1)

$flg=0;
$i=1;
foreach($ptJson as $key=>$val){
    $i++;
    if($key =="phoneSMS3"){
        unlink($ptJson[$key]);
        $flg=1;
    }
    if($flg==1)
        $ptJson[$key]=$ptJson["phoneSMS".$i];
}

答案 2 :(得分:1)

我会从你想要删除的位置迭代到数组的末尾,并在每次迭代中将以下键分配给当前位置:

$prefix = 'phoneSMS';
$index = 3;

while (array_key_exists($prefix . ($index + 1), $ptJson)) {
    $ptJson[$prefix . $index] = $ptJson[$prefix . ($index + 1)];
    ++$index;
}
unset($ptJson[$prefix . $index]);

答案 3 :(得分:-1)

我认为重置($ array)函数可能会有所帮助。