2011-08-04 175 views
0

我試圖合併兩個陣列與array_merge(),但我收到以下警告:PHP合併兩個陣列

警告:array_merge()[function.array合併]:參數#1不是上線41

這裏陣列是代碼:

$travel = array("Automobile", "Jet", "Ferry", "Subway"); 

echo "<ul>"; 

foreach ($travel as $t) 
{ 
    echo "<li>$t</li>"; 
} 

echo "</ul>"; 
?> 

<h4>Add more options (comma separated)</h4> 
<form method="post" action="index2.php"> 
<input type="text" name="added" /> 
<?php 
foreach ($travel as $t){ 
    echo "<input type=\"text\" name=\"travel[]\" value=\"$t\" />\n"; 
} 
?> 
<input type="submit" name="submit" value="Add" /> 
</form> 
<?php 
$travel = $_POST["travel"]; 
    $added = explode(",", $_POST["added"]); 

$travel = array_merge($travel, $added); 

print_r ($travel); 


?> 

回答

3

你分配$_POST["travel"],這是不是一個數組而是一個字符串,以$travel。首先將它變成一個數組。

+1

hm ..實際上'$ _POST [「travel」]'是一個數組,如果你使用'name ='travel []「'' – Floern

0

$_POST是一個數組,$_POST['travel']然而,它只是一個元素,除非它來源於多重選擇元素。

1

您正在訪問$_POST["travel"],但如果您未提交表單,則未定義。你需要檢查它是否是一個post請求:

<?php 
if(isset($_POST["travel"])){ 
    $travel = $_POST["travel"]; 
    $added = explode(",", $_POST["added"]); 

    $travel = array_merge($travel, $added); 
} 

print_r ($travel); 
?>