我有一个这样的数组
$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/