为什么我的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