插入和删除数组中的项目&重置关键值

时间:2014-05-15 02:22:31

标签: php arrays

这是我的阵列:

$array = array(
   0 => 'a',
   1 => 'b',
   2 => 'c',
   3 => 'd',
   4 => 'e',
   5 => 'f',
);

现在,我想在3 - unset($array[3])删除项目 - 但结果如下:

$array = array(
   0 => 'a',
   1 => 'b',
   2 => 'c',
   4 => 'e',
   5 => 'f',
);

但我希望结果如下:

$array = array(
   0 => 'a',
   1 => 'b',
   2 => 'c',
   3 => 'e',
   4 => 'f',
);

3 - $array[3] = 'g'处的插入类似 - 我希望结果如下所示:

$array = array(
   0 => 'a',
   1 => 'b',
   2 => 'c',
   3 => 'g',
   4 => 'd',
   5 => 'e',
   6 => 'f'
);

如何做到这一点?

2 个答案:

答案 0 :(得分:0)

只需使用array_values()“重新锁定”您的数组:

$array = array(
   0 => 'a',
   1 => 'b',
   2 => 'c',
   3 => 'd',
   4 => 'e',
   5 => 'f',
);
unset($array[3]);
$array = array_values($array);

Demo

对于第二部分,只需将要添加新值的数组拆分到第一部分,然后再将数组合并到一起。

$array = array(
   0 => 'a',
   1 => 'b',
   2 => 'c',
   3 => 'd',
   4 => 'e',
   5 => 'f',
);

$key = 3;
$first_part = array_slice($array, 0, $key);
$second_part = array_slice($array, $key);
$first_part[] = 'g';
$array = array_merge($first_part, $second_part);

Demo

答案 1 :(得分:0)

因此,如果您使用array_values,请执行以下操作:

$array = array_values($array);

这里是代码:

$array = array(
   0 => 'a',
   1 => 'b',
   2 => 'c',
   3 => 'd',
   4 => 'e',
   5 => 'f',
);

unset($array[3]);

$array = array_values($array);

echo '<pre>';
print_r($array);
echo '</pre>';

输出结果为:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => e
    [4] => f
)