我有各种各样的键假设10个数组,我只关心3个键
non empty keyA or non empty keyB or non empty keyC
键总是存在,但它们可能是空的,我只关心上面3个非空的键。
如果存在3个键中的任何一个(首先是哪一个)并且不是空的,则打破循环并获取密钥。
//example for KeyA
if (array_key_exists("keya", $array) && !empty($array['keya'])) {
return keya;
break;
}
有没有办法以优雅/建议/优化的方式做到这一点
答案 0 :(得分:3)
使用某些高级数组处理非常容易,尤其是array_filter
- 即使没有自定义回调。
<?php
$x = [ 'a' => '', 'b' => '', 'c' => 'x' ];
var_dump(array_filter($x));
如array_filter所述,如果没有提供回调函数,则将删除所有数组条目等于FALSE(请参阅转换为boolean)。这包括布尔值FALSE
,0(int和float),空字符串和字符串“0”,零元素和NULL的数组。
结果:
array(1) {
["c"]=>
string(1) "x"
}
当你拥有所有非空值时,获得第一个非常容易,current()
也很容易。