表达式返回数组,其中附加值为PHP

时间:2015-04-26 17:17:25

标签: php arrays expression

我有

$whitelist = array ("a", "b", "c", "d");

某个$ _POST变量的允许值的全局白名单。我使用以下表达式来获得具有特定额外值的放大白名单(" e")

array_merge($whitelist, array("e"))

(我将其提供给白名单功能)。但它似乎相当复杂。

我想知道是否有更好的方法来做到这一点?即我正在寻找一个表达式返回一个带有添加元素的数组。

我知道以下两个结构

$whitelist[] = "e";

array_push($whitelist, "e");

但两者都是程序性的,修改原始数组,并且它们都不能用在表达式中。

可能的表达式也是

$whitelist + array((max(array_keys($whitelist))+1)=>"e")

但它比array_merge方法更麻烦。

1 个答案:

答案 0 :(得分:0)

实际上这是可能的,但只是条件不方便:

PHP定义了union数组运算符($a + $b,其中$a$b都是数组),它可以满足您的需求。请查看此页面以获取解释:http://php.net/manual/en/language.operators.array.php

然而,有一个烦人的情况:数组键集必须是不相交的。一旦你想到它,这实际上是有道理的。对于你的例子,这可能有点不方便:"简单"标量数组默认情况下 not 具有不相交的键集,除非您特别注意这一点。