第一個非空值,如果我有一個數組:得到陣列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);
});
的漂亮和容易的,我指的是短期的做法。 –