在PHP中,array_filter()函数期望第一个参数是一个数组。

6
我可以帮您进行翻译。以下是需要翻译的内容:

我有一个问题已经持续了几天。

这是我的代码:

$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]);
}

回复内容存在敏感词^**$/粘贴到英文版本时,它不起作用。

我已经尝试了一切,但什么也没发生。

谢谢。

编辑:

var_dump(array_filter($_FILES['fichier']['name']));

返回给我这个:

NULL

当我尝试上传一个或多个文件时。


array_filter($_FILES['fichier']['name']) 返回一个包含已上传至字段 fichier 下的文件名的字符串。您可以编辑问题以阐述您的要求,也许我们可以提供帮助。你想将 $count 设为什么? - Romeo Sierra
var_dump($_FILES) - u_mulder
$count 每次上传一个或多个文件时都返回0。这段代码在法语版中运作良好,我无法理解问题所在。 - Tweakdev
@u_mulder var_dump($_FILES) 返回给我:array(0) { },即使我上传了两个文件,例如。 - Tweakdev
所以__真正的问题__是$_FILES为空。请检查您的表单。您的表单是否有enctype属性? - u_mulder
你说得对,@u_mulder。我只是在表格上加上了enctype属性,然后在我的输入字段上添加了name="file[]"用于多个文件,现在它可以工作了。谢谢您的时间。 - Tweakdev
3个回答

0

我认为当你看到这个错误时,你可以使用这个:

<td>{{ is_array($client->phone) ? implode($client->phone, '-') : $client->phone }}</td>

0

你的源代码中array_filter函数需要一个数组作为参数,但你使用了一个字符串。你应该确保参数是一个数组。如果你检查过了,你应该使用is_array来帮助你。


-2

你必须首先使用 is_array() 检查 $_FILES 是否作为数组传递。

if(is_array($_FILES['fichier']['name'])){
    $count = count(array_filter($_FILES['fichier']['name']));
} else {
    $count = 0;
} 
echo $count;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接