Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从多个密钥中不为空的数组中获取第一个密钥_Php - Fatal编程技术网

Php 如何从多个密钥中不为空的数组中获取第一个密钥

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']))

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

是否有一种优雅的/建议的/优化的方法来实现这一点

此方法非常简单,有一些高级数组处理,尤其是
数组过滤器
——即使没有自定义回调

<?php
$x = [ 'a' => '', 'b' => '', 'c' => 'x' ];
var_dump(array_filter($x));

当您拥有所有非空值时,获取第一个值也很容易,因为
current()

可能与我编辑的问题重复,请注意可能有三个以上的键。是否有一个内置函数认为0为设置/非空,而空字符串为空?看起来
empty
不适合0,而
isset
将空字符串视为非空字符串。
array(1) {
  ["c"]=>
  string(1) "x"
}