【问题标题】:Insert and remove items in array & reseting key values [duplicate]在数组中插入和删除项目并重置键值[重复]
【发布时间】:2014-07-03 07:26:57
【问题描述】:

这是我的数组:

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

现在,我想删除 3unset($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'
);

如何做到这一点?

【问题讨论】:

标签: php arrays


【解决方案1】:

只需使用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

【讨论】:

    【解决方案2】:

    所以如果你像这样使用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
    )
    

    【讨论】:

      猜你喜欢
      • 2013-04-23
      • 2011-07-28
      • 2011-06-19
      • 1970-01-01
      • 1970-01-01
      • 2020-11-06
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多