【问题标题】:PHP check array using empty() functionPHP使用empty()函数检查数组
【发布时间】:2014-09-26 06:37:30
【问题描述】:

我是 PHP 新手。我有这个输入用于将多个数组添加到 MySQL 数据库中。

<input name="image_url[]" id="ads" type="text" value="">

现在,我需要检查是否不是空值发送到数据库。

我检查了empty() 函数,但这不适用于name="image_url[]"

HTML:

<input name="image_url[]" id="upload" type="text" value="">

PHP 代码:

if(empty($_POST['image_url'])){

echo 'true';

} else {

echo 'false';

}

但我总是看到输出:true。默认情况下,我的输入为空白/空。

我检查并从输入 name(name="image_url") 中删除 [],然后我看到 true 输出。

我认为我的问题是输入数组名称。

如何解决这个问题并检查空值?!

在 var_dump($_POST) 我看到这个输出:

  ["image_url"]=>
  array(1) {
    [0]=>
    string(0) ""
  }

现场演示http://madenade.besaba.com/php/?action=editnews&id=10

注意:使用空值而不是空值签入演示!你看输出:false

【问题讨论】:

  • 尝试 isset($_POST['image_url']) 看看值是否已设置且不为空
  • 阅读有关empty的手册

标签: php arrays


【解决方案1】:

您正在通过在输入名称中使用[] 创建一个值数组。如果您只需要一个值,而不需要更多值,则删除输入名称中的[],否则您将在$_POST['image_url'] 中得到一个数组。

<input name="image_url" id="upload" type="text" value="">
if (empty($_POST['image_url'])) {
    echo 'true';
} else {
    echo 'false';
}

否则,如果您确实需要一个值数组,那么在输入名称中保留[] 意味着$_POST['image_url'] 将包含一个值数组,而不是单个值。您可能想检查每一个。

<input name="image_url[]" id="upload" type="text" value="">
foreach ($_POST['image_url'] as $image_url) {
    if (empty($image_url)) {
        echo 'true';
    } else {
        echo 'false';
    }
}

【讨论】:

  • 当我们有一个输入框并且此代码检查一个输入框是否有值发送并将所有输入框(空值+非空值)插入数据库时​​,此方法有效。我只需要在我的数据库中插入非空值。 &lt;input name="image_url[]" id="upload" type="text" value="123"&gt;&lt;input name="image_url[]" id="upload" type="text" value="456"&gt;&lt;input name="image_url[]" id="upload" type="text" value=""&gt; 我只需要将值 123456 发送到数据库。
  • @EricFavoni,好吧,你可以只在if分支中保留你需要的值,并在else分支中删除你不需要的值。
【解决方案2】:

首先像这样使用Html(如果你输入单个值)

<input name="image_url" id="upload" type="text" value="">

然后在 PHP 代码中这样检查

    if(isset($_POST['image_url']) && $_POST['image_url'] != ""){

echo 'true';

} else {

echo 'false';

}

这将为您提供所需的输出

【讨论】:

  • 为什么是!= "" 而不是empty()
猜你喜欢
  • 2011-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-01
  • 2017-09-17
  • 2015-05-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多