Php 如何仅向数组中添加非空数组?
我想避免几个Php 如何仅向数组中添加非空数组?,php,arrays,Php,Arrays,我想避免几个ifs,我的问题是: 是否有一种函数或方法可以将多个数组($a,$b)添加到一个数组中,但前提是数组($a,$b)不是空的 鉴于: $a = ['foo' => 'bar']; $b = []; 我的代码: $c = []; if (count($a)) { $c['a'] = $a; } if (count($b)) { $c['b'] = $b; } 是的,我需要具有特定名称的字符串键。好的,怎么样 $c = array_filter(compact('a'
if
s,我的问题是:
是否有一种函数或方法可以将多个数组($a,$b)添加到一个数组中,但前提是数组($a,$b)不是空的
鉴于:
$a = ['foo' => 'bar'];
$b = [];
我的代码:
$c = [];
if (count($a))
{
$c['a'] = $a;
}
if (count($b))
{
$c['b'] = $b;
}
是的,我需要具有特定名称的字符串键。好的,怎么样
$c = array_filter(compact('a', 'b'));
只是开玩笑。我真的不推荐这个。“智能(ass)”代码很糟糕,尤其是在php中。要冗长,要可读
(看起来OP没有听到这个笑话。太糟糕了…好吧,怎么样
$c = array_filter(compact('a', 'b'));
只是开玩笑。我真的不推荐这个。“智能(ass)”代码很糟糕,尤其是在php中。要冗长,要可读
(看起来OP没有听到这个笑话。太糟糕了…如果您的所有元素都是数组,那么您就可以轻松地用数组将空元素抛出。例如,利用键等于变量名这一事实,您可以简单地执行以下操作
$c = array_filter(compact('a', 'b'));
如果您的所有元素都是数组,那么您可以很容易地用数组抛出空元素。例如,利用键等于变量名这一事实,您可以简单地执行以下操作
$c = array_filter(compact('a', 'b'));
它非常粗糙,只是为了掩盖糟糕的设计,但有很多可变因素:
$to_do = array('a', 'b');
foreach ($to_do as $key) {
if (count($$key)) {
$c[$key] = $$key;
}
}
请注意双倍的$
。e、 g
php > echo $bar;
PHP Notice: Undefined variable: bar in php shell code on line 1
php > $foo = 'bar';
php > $$foo = 'baz';
php > echo $bar;
baz
它非常粗糙,只是为了掩盖糟糕的设计,但有很多可变因素:
$to_do = array('a', 'b');
foreach ($to_do as $key) {
if (count($$key)) {
$c[$key] = $$key;
}
}
请注意双倍的$
。e、 g
php > echo $bar;
PHP Notice: Undefined variable: bar in php shell code on line 1
php > $foo = 'bar';
php > $$foo = 'baz';
php > echo $bar;
baz
您可以执行以下操作:
$c = array();
function addToC(){
foreach(func_get_args() as $arg){
if(is_array($arg) && !empty($arg){
$c[] = $arg;
}
}
}
您可以执行以下操作:
$c = array();
function addToC(){
foreach(func_get_args() as $arg){
if(is_array($arg) && !empty($arg){
$c[] = $arg;
}
}
}
是的,做一个函数,不要重复你自己。在我看来,这更像是一个编码风格的问题。如果你发布了一个你有问题的真实代码片段,你会得到更好的答案。是的,做一个函数,不要重复你自己。在我看来,这更像是一个编码风格的问题。如果你发布了一个你有问题的真实代码片段,你会得到更好的答案。@Jon:我想这要看情况了。我请OP给我们一个真实的例子,因为foobar codez在这里没有真正的意义。@Jon:我想这要看情况了。我要求OP给我们一个真实的例子,因为foobar codez在这里没有真正的意义。