Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php foreach有问题:给我警告_Php_Arrays - Fatal编程技术网

Php foreach有问题:给我警告

Php foreach有问题:给我警告,php,arrays,Php,Arrays,我有这个: foreach ($country as $value){ 使用print\r的$country的内容如下: Array 但是,当我打印所有POST变量时,它会将国家显示为单个数组,而不是如上所示的数组中的数组 Array ( [entry] => http://www.google.com [SelectLocation] => Canada [country] => Array ( [0] => AL

我有这个:

foreach ($country as $value){
使用print\r的$country的内容如下:

Array
但是,当我打印所有POST变量时,它会将国家显示为单个数组,而不是如上所示的数组中的数组

Array ( 
    [entry] => http://www.google.com
    [SelectLocation] => Canada
    [country] => Array ( 
        [0] => AL
        [1] => AS 
    )
    [type] => country
    [destination] => http://yahoo.co.uk
    [default] => http://yahoo.com
    [loginsubmit] =>
) 
发生什么事了

谢谢大家

更新 我已经这样做了:

$country = sanitize($_POST['country']);

所以$u POST['country']的内容是$country,对吗

你确定你不需要
$\u POST['country']
而仅仅是普通的
$country

你确定你不需要
$\u POST['country']
而仅仅是普通的
$country
。。让我们直说吧

你有这样一个$u POST数组吗

Array ( 
   [entry] => http://www.google.com
   [SelectLocation] => Canada 
   [country] => Array ( 
                        [0] => AL 
                        [1] => AS 
               ) 
   [type] => country 
   [destination] => http://yahoo.co.uk 
   [default] => http://yahoo.com 
   [loginsubmit] => 
)
您正试图通过foreach循环发送的:

foreach($_POST['country'] as $value)
{
    echo $value . "<br>";
}

是这样吗?

好的。。让我们直说吧

你有这样一个$u POST数组吗

Array ( 
   [entry] => http://www.google.com
   [SelectLocation] => Canada 
   [country] => Array ( 
                        [0] => AL 
                        [1] => AS 
               ) 
   [type] => country 
   [destination] => http://yahoo.co.uk 
   [default] => http://yahoo.com 
   [loginsubmit] => 
)
您正试图通过foreach循环发送的:

foreach($_POST['country'] as $value)
{
    echo $value . "<br>";
}

是吗?

美元country来自哪里?您是否假设
$\u POST
变量自动提取到当前范围?因为他们不是。也许你想要这个

foreach ( $_POST['country'] as $value) {

$country
来自哪里?您是否假设
$\u POST
变量自动提取到当前范围?因为他们不是。也许你想要这个

foreach ( $_POST['country'] as $value) {

我认为这里没有任何问题:

$country = $_POST['country'];
foreach ($country as $value){
    echo $value . '<br />';
}
$country=$\u POST['country'];
foreach(按美元价值计算的国家){
回显$value.“
”; }
如果您感到困惑,因为$\u POST数组包含一个国家/地区键的数组,那么解释是在HTML name属性后加上方括号,这确保PHP将集合作为数组获取:

<select name="country[]" multiple="multiple">
...
</select>

...
或许:

<input type="checkbox" name="country[]" value="US"/>
<input type="checkbox" name="country[]" value="UK"/>

我看这里没有任何问题:

$country = $_POST['country'];
foreach ($country as $value){
    echo $value . '<br />';
}
$country=$\u POST['country'];
foreach(按美元价值计算的国家){
回显$value.“
”; }
如果您感到困惑,因为$\u POST数组包含一个国家/地区键的数组,那么解释是在HTML name属性后加上方括号,这确保PHP将集合作为数组获取:

<select name="country[]" multiple="multiple">
...
</select>

...
或许:

<input type="checkbox" name="country[]" value="US"/>
<input type="checkbox" name="country[]" value="UK"/>

听起来您希望register\u globals处于启用状态(这将从POST中创建$country变量),但该设置未处于启用状态

因此,您的选择是:

  • 使用$u POST['country']而不是$country(好主意)
  • 打开寄存器\全局(!)

  • 听起来您希望register_globals处于启用状态(这将从POST中创建$country变量),但该设置未处于启用状态

    因此,您的选择是:

  • 使用$u POST['country']而不是$country(好主意)
  • 打开寄存器\全局(!)

  • 好的,我的消毒功能很糟糕。我已经解决了这个问题。该函数似乎放弃了数组,因为它只检查字符串!对不起,各位。:)

    好的,我的消毒功能很糟糕。我已经解决了这个问题。该函数似乎放弃了数组,因为它只检查字符串!对不起,各位。:)

    您在更新中提到的应该可以正常工作。@尼克-可能是一个清理用户输入(防止sql注入等)的函数。@Eric并不意味着这是给定的。您在更新中提到的应该可以正常工作。@尼克-可能是一个清理用户输入(防止sql注入等)的函数@埃里克并不意味着这是既定的。