【发布时间】:2013-08-26 10:21:26
【问题描述】:
基本上,我有一个多维数组,我需要检查它是否只是空的。
我目前有一个 if 声明试图这样做:
if(!empty($csv_array))
{
//My code goes here if the array is not empty
}
虽然,不管多维数组是否为空,if statement 都会被激活。
这是数组为空时的样子:
Array
(
[0] => Array
(
)
)
这是数组中包含一些元素时的样子:
Array
(
[0] => Array
(
)
[1] => Array
(
[1] => question1
[2] => answer1
[3] => answer2
[4] => answer3
[5] => answer4
)
[2] => Array
(
[1] => question2
[2] => answer1
[3] => answer2
[4] => answer3
[5] => answer4
)
[3] => Array
(
[1] => question3
[2] => answer1
[3] => answer2
[4] => answer3
[5] => answer4
)
)
我的数组元素总是从 1 开始,而不是 0。长话短说为什么,没有必要解释,因为它与这个问题无关。
如果需要,这是创建数组的代码。它是从上传的 CSV 文件中提取的。
$csv_array = array(array());
if (!empty($_FILES['upload_csv']['tmp_name']))
{
$file = fopen($_FILES['upload_csv']['tmp_name'], 'r');
}
if($file)
{
while (($line = fgetcsv($file)) !== FALSE)
{
$csv_array[] = array_combine(range(1, count($line)), array_values($line));
}
fclose($file);
}
所以总而言之,我需要修改我的if statement 来检查数组是否为空。
提前致谢!
【问题讨论】:
-
你试过
if(!empty($csv_array[0]))吗? -
@Bora 永远不会被执行...因为 OP 说它的 o 索引总是空的...
-
如果你的文件在空的时候有固定的格式,你可以找到一个包含文件的空数组占用的大小,并用它来判断你的数组是否为空?这只是一种 hack-y 方法,这些方法就是您所说的开箱即用的方法;)尽管要使此方法起作用,您需要确保在数组为空时文件内容大小是恒定的。 :)
标签: php arrays multidimensional-array