第一个非空值,如果我有一个数组:得到阵列PHP
Array
(
[0] =>
[1] => a
[2] => b
[3] => c
)
我想从阵列得到的第一个非空值,在这种情况下,“A”。我怎么能做到这一点很好,很容易?
第一个非空值,如果我有一个数组:得到阵列PHP
Array
(
[0] =>
[1] => a
[2] => b
[3] => c
)
我想从阵列得到的第一个非空值,在这种情况下,“A”。我怎么能做到这一点很好,很容易?
不知道关于好和容易。但短短的方法可能是:
$first = current(array_filter($sparse_array));
凡array_filter
将提取您的“truthy”的价值观,因此跳过空,假的条目。而current
只是给你第一个剩余的条目。
好了,你可以试试这个:
foreach($array as $x) {
if($x) break;
}
if($x) {
// $x is the first non-null value
}
else {
// There were no non-null values
}
function getFirstNotNull($array) {
foreach($array as $val) {
if(!is_null($val) || !$val) return $val;
}
}
在第二行中,它是'$ array'而不是'$ arrea'。 –
function get_first_not_null($array){
foreach($array as $v){
if($v !== null){
return $v;
}
}
return null;
}
$res = null;
foreach ($arr as $v) {
if ($v !== null) {
$res = $v;
break;
}
}
更多的代码,马里奥的解决方案,但它无疑运行得更快 - 它也会捕获非空“假”值。 – Blazemonger
我会用array_reduce
$firstNonNull = array_reduce($array, function($v, $w) {
return $v ? $v : (isset($w) ? $w : FALSE);
});
的漂亮和容易的,我指的是短期的做法。 –