如果列为空,则隐藏列,即数组元素为空

时间:2014-07-02 09:31:22

标签: php html5

我有一个数组:

  $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>" ;

但这总是会回归&#34;不存在&#34;

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

这也会返回false。

2 个答案:

答案 0 :(得分:0)

检查

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

答案 1 :(得分:0)

您需要在正在执行的foreach循环中进行检查。

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