Php 如何从多个密钥中不为空的数组中获取第一个密钥
我有各种各样的键,假设数组中有10个,我只关心3个键Php 如何从多个密钥中不为空的数组中获取第一个密钥,php,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']))
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;
}
是否有一种优雅的/建议的/优化的方法来实现这一点此方法非常简单,有一些高级数组处理,尤其是
数组过滤器
——即使没有自定义回调
<?php
$x = [ 'a' => '', 'b' => '', 'c' => 'x' ];
var_dump(array_filter($x));
当您拥有所有非空值时,获取第一个值也很容易,因为
current()
可能与我编辑的问题重复,请注意可能有三个以上的键。是否有一个内置函数认为0为设置/非空,而空字符串为空?看起来empty
不适合0,而isset
将空字符串视为非空字符串。
array(1) {
["c"]=>
string(1) "x"
}