【问题标题】:Pop an index anywhere in an array [duplicate]在数组中的任意位置弹出索引[重复]
【发布时间】:2016-05-27 08:27:41
【问题描述】:

我希望能够从我的数组中的任何位置获取一个值,取消设置它,并移动索引,以便我的数组索引仍然是有序的。

原始数组:

array:3 [
    0 => 'apple'
    1 => 'banana'
    2 => 'orange'
    3 => 'grapes'
]

获取索引1的值,未设置,移位:

$val = 'banana';

array:2 [
    0 => 'apple'
    1 => 'orange'
    2 => 'grapes'
]

是否有类似于 array_pop() 或 array_shift() 的原生 PHP 函数可以做到这一点?

【问题讨论】:

  • 你试过我的答案了吗?我应该在你的情况下完美地工作,如果它不起作用,请告诉我。

标签: php


【解决方案1】:

你必须创建一个自定义函数

function removeAndreindex($array,$index)
 {
    unset($array[$index]);
    return array_values($array)
 }

谢谢

【讨论】:

    【解决方案2】:

    试试这个:

    unset($array[array_search($val, $array)]);
    

    函数array_search将返回值$val的索引,然后您可以使用unset()函数将其从数组中删除。

    【讨论】:

      【解决方案3】:

      你可以使用 array_values 来做类似的事情

      $array = [
          0 => 'apple',
          1 => 'banana',
          2 => 'orange',
          3 => 'grapes'
      ];
      
      unset($array[1]);
      
      print_r(array_values($array));
      

      【讨论】:

      • 是的,但是有没有办法使用一个函数来做到这一点?
      • 对不起。我的意思是,是否有一个类似于 array_pop() 或 array_shift() 的 PHP 函数可以做同样的事情,只是我可以在数组中的任何地方获取和取消设置一个值?
      • 我不知道,但为什么它必须是一个功能?
      • 我只是想确保我没有遗漏任何东西。但无论如何,上面的代码有效,我将您的答案设置为已接受。谢谢! :)
      猜你喜欢
      • 1970-01-01
      • 2014-09-22
      • 2012-07-06
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 2012-08-24
      • 1970-01-01
      • 2011-03-25
      相关资源
      最近更新 更多