从数组中删除前2个php对象

时间:2017-09-21 13:41:49

标签: php

我想从PHP数组中删除前2个对象,我的代码如下

[HttpDelete("{id}")]
        public NoContentResult Delete(int id)
        {
            _projectRepository.Delete(id);

            return new NoContentResult();
        }

输出:

print_r($available_methods);

我想删除前2个数组索引并仅使用最后一个。

3 个答案:

答案 0 :(得分:2)

试试这个

unset($available_methods["free_shipping:5"]);
unset($available_methods["flat_rate:4"]);

答案 1 :(得分:1)

unset()

如果密钥没有改变,你可以简单地取消设置前2个索引值。

unset($available_methods["free_shipping:5"]);
unset($available_methods["flat_rate:4"]);

但是,肯定有其他方法可能对你的情况更好。

http://php.net/manual/en/function.unset.php

array_pop()

取消设置其他变量的替代方法是使用array_pop

$available_methods = [array_pop($available_methods)];

请注意,我将其包装在方括号[]中,并将其放回数组中。 (括号是简写数组)

如果您不关心它是否在数组中,您可以删除这些符号,它将自己放在变量中。

$available_methods = array_pop($available_methods);
  

array_pop()弹出并返回数组的最后一个值,缩短   数组由一个元素组成。

在这种形式中,这将使用最后一个索引中的数据完全覆盖现有数组,但您可以轻松地将其保存到另一个变量中,这样您就可以保留原始数据。

有关array_pop()的更多信息,请参阅php manual

它可以变得更容易

如果它总是一个精确的索引,并且该索引总是被命名为相同的,那么你可以简单地将该索引拉入它自己的变量中。

$available_methods = [$available_methods['per_product']]; //to keep it in an array
$available_methods = $available_methods['per_product']; //to keep just the variable

注意:如果您运行的PHP版本低于5.4(如果您正在运行,则应该升级到较新版本),不支持短数组语法,并且必须使用替换为array()

http://php.net/manual/en/language.types.array.php

注意:所有这些解决方案可能会执行的几乎相同,根据执行时间长短在不同的解决方案之间进行选择可能会被视为微优化,在大多数情况下会无所谓。您应该选择最容易理解它如何工作的那个,或者甚至是您最不了解的那个,以便您可以了解它是如何工作的。这就是我要做的事情:))

答案 2 :(得分:1)

我会看看使用array_slice http://php.net/manual/en/function.array-slice.php

如下所示:

$list = array_slice($available_methods, 2, null, true);