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


get all array keys after specific key in php

我有一个这样的数组,

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

我必须删除phoneSMS3,所以我使用unset来取消

键的设置
unset($ptJson['phoneSMS3']);

效果很好!现在我想把休息键向上移动一个,但不知道怎么做。搜索了,但没有找到

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

for($i = 2; $i < count($ptJson); $i++){
  $ptJson[$i] = 'phoneSMS'.($i+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]);
$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];
}

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