Получить первое ненулевое значение из массива php

Если у меня есть массив:

Array
(
    [0] => 
    [1] => a
    [2] => b
    [3] => c
)

И я хочу получить первое ненулевое значение из массива, в данном случае "a". Как я мог сделать это хорошо и легко?

Ответ 1

Не уверен, что это хорошо и легко. Но короткий подход может быть:

 $first = current(array_filter($sparse_array));

Где array_filter вы получите "правдивые" значения, таким образом пропуская пустые и ложные записи. Пока current просто дает вам первую из оставшихся записей.

Ответ 2

function get_first_not_null($array){
  foreach($array as $v){
    if($v !== null){
        return $v;
    }
  }
  return null;
}

Ответ 3

function getFirstNotNull($array) {
    foreach($array as $val) {
         if(!is_null($val) || !$val) return $val;
    }
}

Ответ 4

$res = null;
foreach ($arr as $v) {
    if ($v !== null) {
        $res = $v;
        break;
    }
}

Ответ 5

Ну, вы могли бы попробовать это:

foreach($array as $x) {
    if( $x) break;
}
if( $x) {
    // $x is the first non-null value
}
else {
    // There were no non-null values
}

Ответ 6

Я бы использовал array_reduce

$firstNonNull = array_reduce($array, function($v, $w) {
  return $v ? $v : (isset($w) ? $w : FALSE);
});