如何从多个键中的非空数组中获取第一个键

时间:2018-04-24 22:10:18

标签: php

我有各种各样的键假设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;
}

有没有办法以优雅/建议/优化的方式做到这一点

1 个答案:

答案 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()也很容易。