Подсчет пустых столбцов в строках

У меня есть таблица свойств, и она имеет шесть столбцов. Пользователи загружают фото и имя изображения хранится в столбце.

Теперь я хочу посчитать количество столбцов для каждой строки, которые являются пустыми.

Я уже могу это сделать, но код выглядит слишком длинным, я хочу написать эффективный код, есть ли способ эффективно переписать следующее.

while($data=$select->fetch()){

$imagecounter=0;
if ($data['property_image1'] !== "" && $data['property_image2'] !== "" && $data['property_image3'] !== "" && $data['property_image4'] !== "" && $data['property_image5'] !== "" && $data['property_image6'] !== "") {
echo $imagecounter=6;
} else if ($data['property_image1'] !== "" && $data['property_image2'] !== "" && $data['property_image3'] !== "" && $data['property_image4'] !== "" && $data['property_image5'] !== "") {
echo $imagecounter=5;
} else if ($data['property_image1'] !== "" && $data['property_image2'] !== "" && $data['property_image3'] !== "" && $data['property_image4'] !== "") {
echo $imagecounter=4;
} else if ($data['property_image1'] !== "" && $data['property_image2'] !== "" && $data['property_image3'] !== "") {
echo $imagecounter=3;
} else if ($data['property_image1'] !== "" && $data['property_image2'] !== "") {
echo $imagecounter=2;
} else if ($data['property_image1'] !== "") {
echo $imagecounter=1;
}

}

5

Решение

Вы можете сделать это, как показано ниже:

while($data=$select->fetch()){
$data1 = array($data['property_image1'],$data['property_image2'],$data['property_image3'],$data['property_image4'],$data['property_image5'],$data['property_image6']);
$count = count($data1); // count of original array
$count1 = count(array_filter($data1)); // remove empty indexes and count the values

echo "empty columns number is :-".($count-$count1);
}

Заметка:- $count1 это количество непустых значений

2

Другие решения

попробуй этот код

while($data=$select->fetch()):
$imagecounter = 0;
for($i=1; $i<=6; $i++)
if(!empty($data["property_image$i"]))
$imagecounter++;

echo $imagecounter;
endwhile;
1

имя столбца имеет свое правило?

при условии, что это ‘property_image {число}’

while($row=$result->fetch()) {
$count = 0;
for($i=0; $i<6; $i++) {
if($row['property_image'.$i]==NULL)
$count++;
}
echo "empty columns number is :-".($count);
}

код не проверен.
дайте мне знать, если это не работает

1