您好我的格式是
location1 2 4
location2 3 2
location3 0 0
location1 1 0
如何修剪结果以便不显示返回0和0的行?谢谢
.................
这是Mysql查询,我不知道如何从MySQL中修剪它所以我想用PHP ..
SELECT hotelas.name, hotelas.address, hotelas.city, hotelas.country, hotelas.hotel_id
AS hotelid,
COUNT( DISTINCT apart.apartman_id ) AS number_of_free_ap,
COUNT( DISTINCT room.apartman_id ) AS num_of_free_rooms
FROM hotel AS hotelas
LEFT JOIN apartman AS apart ON ( apart.apartman_hotel = hotelas.hotel_id
AND apart.occupied =0
AND apart.what =1 )
LEFT JOIN apartman AS room ON ( room.apartman_hotel = hotelas.hotel_id
AND room.occupied =0
AND room.what =0 )
GROUP BY hotelas.hotel_id
TABLE字段是什么,0 - 房间,1 - 公寓
所以我得到了一些列,其中最重要的是计数列,免费房间和免费公寓。所以我有一个测试酒店,完整的0个房间和0个公寓,我希望从这个列表中删除所有其他酒店至少有一个房间或一个公寓。
答案 0 :(得分:6)
如果您正在查询数据库以获取此信息,并且您可以更改查询,那么这将是最佳选择。
SELECT *
FROM myTable
WHERE
firstColumn != 0
OR
secondColumn != 0
如果您是从其他来源(CSV或其他内容)获取PHP,或者您无法控制查询,请使用array_filter()
:
// i'm assuming each line in your example is an array of values
$myArray = array_filter($myArray, 'noDoubleZeroes');
function noDoubleZeroes($line) {
return $line[1] != 0 || $line[2] != 0;
}
答案 1 :(得分:1)
select * from table
where column1 !=0
or column2 !=0
这就是你在MySQL中修剪它的方法。
OTOH,如果你有一个像这样的数组(你通常会在从db查询后得到这个)
array(array('location1', 2, 4), array('location2', 3, 2))
然后你需要遍历数组并进行手动过滤:
$newarrs=array();
foreach($arrs as $values)
{
if($values[1]!=0 || $values[2]!=0)
$newarrs[]=$values;
}
return $newarrs;
答案 2 :(得分:-1)
如果我理解正确,这应该有帮助
$columns = explode($resultLine, " ");
$whatYouWant = $columns[0];