我有
$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方法更麻烦。
答案 0 :(得分:0)
实际上这是可能的,但只是条件不方便:
PHP定义了union
数组运算符($a + $b
,其中$a
和$b
都是数组),它可以满足您的需求。请查看此页面以获取解释:http://php.net/manual/en/language.operators.array.php
然而,有一个烦人的情况:数组键集必须是不相交的。一旦你想到它,这实际上是有道理的。对于你的例子,这可能有点不方便:"简单"标量数组默认情况下 not 具有不相交的键集,除非您特别注意这一点。