配列がある場合:
Array
(
[0] =>
[1] => a
[2] => b
[3] => c
)
そして、配列から最初の null 以外の値 (この場合は "a") を取得したいと考えています。どうすればそれをうまく簡単に行うことができますか?
素晴らしくて簡単かどうかわからない。しかし、簡単なアプローチは次のようになります。
$first = current(array_filter($sparse_array));
どこで「真array_filter
の」値が抽出されるので、空のエントリと誤ったエントリはスキップされます。単にそれらの残りのエントリの最初のものを提供しますが。current
function get_first_not_null($array){
foreach($array as $v){
if($v !== null){
return $v;
}
}
return null;
}
function getFirstNotNull($array) {
foreach($array as $val) {
if(!is_null($val) || !$val) return $val;
}
}
$res = null;
foreach ($arr as $v) {
if ($v !== null) {
$res = $v;
break;
}
}
さて、あなたはこれを試すことができます:
foreach($array as $x) {
if( $x) break;
}
if( $x) {
// $x is the first non-null value
}
else {
// There were no non-null values
}
私は使うだろうarray_reduce
$firstNonNull = array_reduce($array, function($v, $w) {
return $v ? $v : (isset($w) ? $w : FALSE);
});