php - foreach 一个数组来检查一个键的值是否不为空

标签 php arrays

我有一个这样的数组

$array = array('key1' => $_GET['value1'], 'key2' => $_GET['value2']);

我想检查键的值是否不为空。假设用户访问网页并请求此 http://mysite.com/page.php?value1=somevalue&value2=这意味着 value2 是空的,或者说查询字符串中缺少它我希望能够检查它是否存在并且不为空。

我试过了

foreach($array as $key => $value)
{
    if(empty($value))
    {
        //spout some error
    }
}

但即使我输入了这个 http://mysite.com/page.php?value1=somevalue这意味着缺少 value2,我没有收到错误。

我如何实现我想要的?

最佳答案

当我这样做时:

<?php 

$array = array('key1' => $_GET['value1'], 'key2' => $_GET['value2']);

foreach($array as $key => $value)
{
    if(empty($value))
    {
        echo "$key empty<br/>";
    }
    else
    {
        echo "$key not empty<br/>";
    }
}

?>

与:

http://jfcoder.com/test/arrayempty.php?value1=somevalue

编辑:还有这个 - http://jfcoder.com/test/arrayempty.php?value1=somevalue&value2=

我得到:

key1 not empty
key2 empty

我认为您需要为有关实际使用的问题提供更多背景信息,因为可能还有其他一些细节无法解决。

编辑

这没有任何意义,但这是在评论中提供的:

$array = array(
    'key1' => '".mysql_real_escape_string($_GET['value1'])."',
    'key2' => '".mysql_real_escape_string($_GET['value2'])."'
);

这实际上并没有解析,因为单引号与单引号字符串混合在一起,事实上,即使它确实解析了,也会将数组部分设置为等于文字字符串,而不是函数结果.

我想可能是:

$array = array(
    'key1' => "'".mysql_real_escape_string($_GET['value1'])."'",
    'key2' => "'".mysql_real_escape_string($_GET['value2'])."'"
);

这表明将始终返回至少为 '' 的字符串,由于单引号的缘故,该字符串永远不会为空。

考虑 PDO .

关于php - foreach 一个数组来检查一个键的值是否不为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5479808/

相关文章:

javascript - 如何使用 PHP 在电子邮件中以 HTML/文本格式发送 Javascript

php - 在 PHP 中读取和迭代 .txt

javascript - 如何对数组进行分组

c - 警告:从不兼容的指针类型传递''的参数1 [默认启用]

php - 在 Go 中获取 PHP 配置变量

php - mysql 查询 wp_post 列表和类别和日期

PHP - 页面刷新时重新加载新记录

python - Pandas DataFrame [cell=(label,value)],分为 2 个独立的数据框

javascript - 在数组中获取高于平均值的值 - JS

java - 在素数数组中查找特定数字