@reds

Как проверить, есть ли в одной из колонок двумерного массива хоть одно непустое значение?

Как попроще узнать, есть ли хоть в одном из нескольких колонок массива непустое значение? В примере, 2,3,4 колонки пустые, мне нужно это узнать:

$array = array (
['1','','',''],
['2','','',''],
['3','','',''],
['4','','',''],
['5','','','']
);

Так узнаю есть ли что-нибудь в первой колонке, но тоже ищу попроще способ:

if(strlen(implode(array_column($array,0)))>0){echo 'Good';}
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 3
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Если честно, то меня всегда удивляют такие вопросы.
Ну ведь любые операции над массивами решаются элементарно, просто с помощью цикла.
Надо перебрать строки? Перебираем массив по строкам.
Надо перебрать колонки - перебираем по строкам, а вложенные массивы поэлементно.
Надо проверить каждую колонку? Записываем результат по каждой колонке.
Вроде очевидные вещи же, которые выводятся из того простого факта, что любые операции над массивами делаются с помощью цикла. Не?

$columns = [];
foreach($array as $row) {
    foreach ($row as $i=> $col) {
        $filled = $col !== "";
        $columns[$i] = !empty($columns[$i]) ? $columns[$i] : $filled;
    }
}

foreach($columns as $col => $result) {
    echo "Колонка $col ".($result ? "не" : ""). "пустая\n";
}
Ответ написан
Комментировать
@Ex1st
Если нужна конкретная к̶о̶л̶о̶н̶к̶а̶ элемент массива, то вот так
if (!empty($array[0])) {
    echo 'good';
}
Ответ написан
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
function is_empty_vals(array $arr) {
    return empty(
        array_filter(array_merge(...$arr), fn($val) => $val !== "")
    );
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы