Php 如果条件为false,则清除数组

Php 如果条件为false,则清除数组,php,Php,比如说 while($row = mysql_fetch_object($res)) { if($row == 2) $statment[] = $row->name; else $statment[] = ''; } 当我打印($statment)时,它还包含空记录。在while语句结束后使用它 $nonemptyarray = array_filter($yourarray, 'strlen'); 代码。。 只需替换$station

比如说

while($row = mysql_fetch_object($res))
{
    if($row == 2)
        $statment[] = $row->name;
    else
        $statment[] = ''; 
}
当我打印($statment)时,它还包含空记录。

在while语句结束后使用它

$nonemptyarray = array_filter($yourarray, 'strlen');
代码。。
只需替换
$station=''带有
$statment=array()

然后不要将“”添加到语句中

while($row = mysql_fetch_object($res)) {
   if($row == 2)
      $statment[] = $row->name;
}

在else语句中,只需替换
$statment[]=''带有
$statment=array()

这是实际的解决方案+1您是否真的将对象与值2进行比较?当然,你应该比较那个对象的属性,而不是整个对象本身。谢谢,我就快到了——如果结果是(数组[0]='',数组[1]='',数组[2]=67),我只想显示记录67,但我不知道数组的位置,67到底在哪里。我希望你明白我的意思。结果应始终为数组[0]=>67。这样我就可以-echo$record[0]并输出67如果你的
67
在数组的第二个索引中,为什么你不能
echo$yourray[2]?如果67在第三个索引上怎么办?这可以根据结果进行更改。使用
echo$position=array\u search(67,$yourray)
返回
67
所在的位置。
while($row = mysql_fetch_object($res)) {
   if($row == 2)
      $statment[] = $row->name;
}