2013-09-06 5 views
1

Я разместил этот вопрос немного раньше, но вот полная версия.PHP Слияние и печать двух массивов

Я пытаюсь объединить два массива. The Eating Array (который в настоящее время ничего не имеет в нем) и Dairy Array (потому что пользователь добавил галочку «Да» на отдельную html-страницу).

Однако, когда я совмещаю эти два, в новый массив ($ newArray) все, что происходит следующая ошибка:

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

Линия 65 идентифицируется в комментариях.

<?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>"; 
?> 

Спасибо за помощь.

Andrew

+1

Похоже, '$ newArray' не инициализируется, попробуйте начать с '$ newArray = array()'. Если у вас нет предупреждения, ваше условие, если '($ _POST ['DairyCheckBox'] == 'yes')' просто неверно. – LFI

ответ

2

Вы должны перейти в if пункта ваш foreach

Ваш array_merge находится внутри, если clause with checking $ _POST . You're trying Еогеасп before Post` и получать ошибки

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

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

Это не приводит к ошибке, но не приводит к каким-либо выводам, что так когда-либо? –

+0

Когда это действительно так, потому что условие истинно –

Смежные вопросы