【问题标题】:array_filter() expects parameter 1 to be array in PHParray_filter() 期望参数 1 是 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 属性吗?

标签: php arrays wordpress file warnings


【解决方案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;
      

      【讨论】:

        猜你喜欢
        • 2020-06-17
        • 2020-12-05
        • 1970-01-01
        • 1970-01-01
        • 2012-09-02
        • 2017-05-03
        • 1970-01-01
        • 2016-09-24
        • 1970-01-01
        相关资源
        最近更新 更多