为什么我的PHP数组没有作为非空函数输入函数?

为什么我的PHP数组没有作为非空函数输入函数?,php,arrays,Php,Arrays,基本上,如果我的数组为空,我将运行一个if语句 例如: $csv = array(); $csv_empty = array_filter($csv); if (!empty($csv_empty)) { Other code goes here } unset($csv); 不幸的是,我的if语句根本没有被输入。以下是我的阵列的转储: Array ( [0] => Array ( [0] => email1@foo.

基本上,如果我的数组为空,我将运行一个
if语句

例如:

$csv = array();

$csv_empty = array_filter($csv);

if (!empty($csv_empty)) 
{
    Other code goes here
}

unset($csv);
不幸的是,我的
if语句根本没有被输入。以下是我的阵列的转储:

Array
(
    [0] => Array
        (
            [0] => email1@foo.com
            [1] => email2@foo.com
            [2] => email3@foo.com
        )

)
如果需要,这就是通过CSV文件上载创建数组的方式(这不是我要引用的If语句。此
If
语句运行良好,没有其他空数组检查
If
语句):


有人知道为什么我的
if语句没有运行吗?可能是因为我的阵型是2级的吗?如果我将阵列更改为单级,这会解决我的问题吗?

你真的应该在If中使用count($csv\u empty)>0而不是空。

根据你提供的,我没有看到任何问题:

$csv = array( 0 => array( 0 => 'email1@foo.com' ,1 => 'email2@foo.com' ,2 => 'email3@foo.com' ) );

$csv_empty = array_filter( $csv );

if( ! empty( $csv_empty ) )
    echo 'In If';
else
    echo 'In Else';
显示:

In If

但是如果我认为数组有<代码> false <代码> s作为项,则get通过<代码> ArayaFixs >:

$csv = array( 0 => false ,1 => false);

$csv_empty = array_filter( $csv );

if( ! empty( $csv_empty ) )
    echo 'In If';
else
    echo 'In Else';
显示

In Else
我想你的问题可能在其他地方,可能是数据


如果($handle=fopen($tmpName,'r'))!=FALSE)@zod-但是如果没有我的
if语句
的话,那部分运行绝对正常?一旦我在所有内容周围添加了
if语句
,它就会停止工作。如果从回调函数更改了数组(例如添加、删除或取消设置元素)此函数的行为未定义。应用筛选器后,在
$csv\u empty
上使用array\u filter进行
var\u dump
的目的是什么。在我将代码包装到检查数组是否为空的
if
语句中之前,该程序工作正常。因此,数据必须是正确的。我以后设置数组是否会导致此问题?以后设置数组不会导致以前的问题。以防万一,您是否正在使用任何
回调
函数?还可以尝试在.Nup上使用
display\u errors
On.Nup进行测试,不使用回调函数。即使我删除数组的
unsetting
,它仍然不会输入
if
语句。还有其他因素吗?如果我将
If语句
更改为
If(empty($csv_empty))
,它似乎出于某种原因输入了它。。。
In Else