【问题标题】:PHP Merging and printing two arraysPHP合并和打印两个数组
【发布时间】:2013-09-06 07:41:34
【问题描述】:

我早些时候发布了这个问题,但这里是完整版。

我正在尝试合并两个数组。 Eating Array(目前没有任何内容)和 Dairy Array(因为用户在单独的 html 页面上对 Dairy 勾选了是)。

但是,当我将这两个组合成一个新数组 ($newArray) 时,会发生以下错误:

 Warning: Invalid argument supplied for foreach() in
           /home/****/****/website.php on line 65

第 65 行在 cmets 中标识。

<?php 

 $EatingArray=array();

 echo "<p>";


 $DrinksArray = array(
     'a' => 'Coca Cola',
     'b' => 'Fanta',
 'c' => 'Sprite',
);
 $FoodArray = array(
     'd' => 'Hamburger',
     'e' => 'Pie',
 'f' => 'Chips',
);
 $SweetsArray = array(
     'g' => 'Musk Sticks',
     'h' => 'Maltesers',
 'i' => 'M&Ms',
);
 $DairyArray = array(
     'j' => 'Milk',
     'k' => 'Yoghurt',
 'l' => 'Cheese',
);


if ($_POST['DairyCheckBox'] == 'yes')
 {
 $newArray = array_merge($EatingArray, $DairyArray);
 }
foreach ($newArray as $key => $value)    //LINE 65

{
        echo $value;
}



 echo "<p>";
 ?>

提前感谢您的帮助。

安德鲁

【问题讨论】:

  • $newArray 似乎没有初始化,请尝试以$newArray = array() 开头。如果您没有警告,则($_POST['DairyCheckBox'] == 'yes') 的条件为假。

标签: php arrays merge echo


【解决方案1】:

您应该将您的foreach 移入if 子句

您的array_merge 在 ifclause with checking$_POST. You're tryingforeachbeforePOST` 中并出现错误

if ($_POST['DairyCheckBox'] == 'yes')
{
    $newArray = array_merge($EatingArray, $DairyArray);

    foreach ($newArray as $key => $value)    //LINE 65
    {
            echo $value;
    }
}

【讨论】:

  • 这不会导致错误,但不会产生任何输出?
  • 什么时候应该,因为条件为真
猜你喜欢
  • 2019-09-03
  • 2022-11-17
  • 2015-03-01
  • 2013-08-31
  • 2019-02-22
  • 2015-01-26
  • 2011-02-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多