Скрыть столбец, если столбец пуст, т.Е. Элемент массива пуст

#php #html

#php #HTML

Вопрос:

У меня есть массив, такой:

   $prices = array();
  

Вместе с запросом MySQL и выборкой:

 $query = "SELECT $columns FROM Prices WHERE `key` LIKE '$rows' LIKE '$AirportPU' AND rate LIKE '$rate'";

 if($results = $db->query($query))
 {
 if($results->num_rows)
 {
 while($row = $results->fetch_object())
 {
 $prices[] = $row;
 }
 $results->free();
 }
  

Я распечатал таблицу, используя следующий код: (я удалил некоторые столбцы таблицы)

 <?php 
if(!count($prices)) {
    echo '<p>No results found for your current search. Use the inputs to the left to change the filters.</p>';
 } else {
   ?>
       <table>
           <thead>
               <tr>
                <th>Location</th>
                <th>City</th>
                </tr>
            </thead>
            <tbody>
              <?php
              foreach ($prices as $p) {
              ?>
              <tr>
                <td> <?php echo $p->Location; ?> </td>
                <td> £<?php echo $p->City; ?> </td>
              </tr>
              <?php
              }
              ?>
            </tbody>
          </table>
        <?php } ?>
  

Я могу вернуть данные из запроса MySQL и распечатать их в таблице. Однако иногда не все столбцы нужно печатать, поскольку они не имеют значений. Я хотел бы скрыть эти столбцы.

Я попытался проверить массив с помощью:

 print (isset($prices["City"])) ? "Exists</br>" : "Doesn't Exist</br>" ;
  

Но это всегда возвращает «Не существует»

 if (array_key_exists("City",$prices))
{
echo "Element exists!";
}
else
{
echo "Element does not exist!";
}
  

Это также возвращает false.

Комментарии:

1. Попробуйте проверить empty() вместо isset(), смотрите больше здесь techtalk.virendrachandak.com/php-isset-vs-empty-vs-is_null

2. Ах, извините, я сначала попробовал пустой, забыл упомянуть об этом. тот же результат:(

Ответ №1:

Вам нужно проверить это внутри foreach цикла, который вы выполняете.

 print (isset($p->City)) ? "Exists</br>" : "Doesn't Exist</br>" ;
  

Ответ №2:

Проверьте с помощью

 if(empty($price['City'] || $price['City'] == "")){
    //Hide column
}
  

Комментарии:

1. if( is_empty($price[‘City’])){ echo «Нет данных»; } else if (is_empty($ price [‘City’]) == false) { echo «данные»; } Пробовал это: остальная часть моей страницы не отображается? не уверен, что не так

2. Извините, is_empty не является функцией. Это пусто();