【问题标题】:Reset PHP array index to start from 0 after unset operation [duplicate]取消设置操作后将PHP数组索引重置为从0开始[重复]
【发布时间】:2019-03-11 17:00:00
【问题描述】:

我有一个数组

$cars = array("Volvo", "BMW", "Toyota", "Mercedes");

我想删除第一个元素“Volvo”并使用它

unset($cars[0]);

现在我有一个这样的数组:

Array
(   
    [1] Bmw
    [2] Toyota
    [3] Mercedes
)

但我希望我的数组再次从零开始,就像这样:

Array
(
    [0] Bmw
    [1] Toyota
    [2] Mercedes
)

怎么做?

【问题讨论】:

    标签: php arrays unset


    【解决方案1】:

    在取消设置操作后,使用array_values函数重置数组。

    请注意,此方法适用于所有情况,包括从数组中取消设置任何索引键(开始/中间/结束)。

    array_values() 返回数组中的所有值并按数字索引数组。

    试试(Rextester DEMO):

    $cars = array("Volvo", "BMW", "Toyota", "Mercedes");
    unset($cars[0]);
    $cars = array_values($cars);
    var_dump($cars); // check and display the array
    

    【讨论】:

    • @doki 乐于助人:)
    【解决方案2】:

    使用array_slice() 代替选择数组的特殊部分

    $newCars = array_slice($cars, 1)
    

    检查结果在demo

    【讨论】:

      【解决方案3】:

      假设您总是想从数组中删除第一个元素,array_shift 函数会返回第一个元素并重新索引数组的其余部分。

      $cars = array("Volvo", "BMW", "Toyota", "Mercedes");
      $first_car = array_shift($cars);
      var_dump($first_car);
      // string(5) "Volvo"
      var_dump($cars)
      // array(3) {
      //  [0] =>
      //  string(3) "BMW"
      //  [1] =>
      //  string(6) "Toyota"
      //  [2] =>
      //  string(8) "Mercedes"
      //}
      

      【讨论】:

        猜你喜欢
        • 2013-05-29
        • 2016-11-21
        • 2015-02-01
        • 2021-08-02
        • 1970-01-01
        • 2013-06-23
        • 2011-11-24
        • 2023-03-16
        • 2014-03-25
        相关资源
        最近更新 更多