array_filter() 期望参数 1 是 PHP 中的数组
Posted
技术标签:
【中文标题】array_filter() 期望参数 1 是 PHP 中的数组【英文标题】:array_filter() expects parameter 1 to be array in PHP 【发布时间】:2018-11-10 04:01:31 【问题描述】:我有几天的线路问题。
这是我的代码:
$files = array();
$count = count(array_filter($_FILES['fichier']['name']));
echo $count;
for($i=0;$i<$count;$i++)
array_push($files, $_FILES['fichier']['tmp_name'][$i]);
此代码在表单中,但是当我提交表单时,我收到以下错误消息:
警告:array_filter() 期望参数 1 为数组,给定 null 在...
这部分代码在 FR 版本中有效,但是当我尝试在 EN 版本中复制/粘贴时,它不起作用。
我已经尝试了一切,没有任何反应。
谢谢。
编辑:
var_dump(array_filter($_FILES['fichier']['name']));
把这个给我:
空
当我尝试上传 1 个或多个文件时。
【问题讨论】:
array_filter($_FILES['fichier']['name'])
返回一个字符串,其中包含已在字段fichier
下上传的文件名。您编辑问题以详细说明您的要求,也许我们可以提供帮助。这个$count
不能是什么?
var_dump($_FILES)
$count 每次都返回 0,即使我要上传 1 个或多个文件。这部分代码在FR版本中运行良好,我无法理解问题。
@u_mulder var_dump($_FILES) 返回给我:array(0) ,即使我上传两个文件,例如
所以真正的问题是$_FILES
为空。检查您的表格。你的表单有enctype
属性吗?
【参考方案1】:
我认为当你看到这个错误时你可以使用这个:
<td> is_array($client->phone) ? implode($client->phone, '-') : $client->phone </td>
【讨论】:
【参考方案2】:您的源代码中的array_filter
函数需要一个数组作为参数,并且您使用一个字符串。您应该确保参数是一个数组。如果你检查了,你应该使用is_array
的帮助。
【讨论】:
【参考方案3】:你可以这样检查
if(is_array($_FILES['fichier']['name']))
$count = count(array_filter($_FILES['fichier']['name']));
else
$count = 0;
echo $count;
【讨论】:
以上是关于array_filter() 期望参数 1 是 PHP 中的数组的主要内容,如果未能解决你的问题,请参考以下文章