2012-07-26 78 views
1

我想打一個數組這樣PHP - 使用while循環來創建一個嵌套的數組

$array = array("'firstName1', 'lastName1'", "'firstName2', 'lastName2'", ......); 

我總是得到這樣的錯誤:

Parse error: syntax error, unexpected 'while' (T_WHILE), expecting ')' in C:\wamp\www\Tests\index.php on line 11

<!doctype html> 
<html> 
<head> 
    <meta charset="utf=8"> 
</head> 
<body> 
<?php 
if(isset($_POST['reg'])){ 
    $x=1; 
    $a = array(
    while($x<=10): 
    "'firstName$x', 'lastName$x'"; //I DONT KNOW WHAT TO DO IN THIS LINE// 
    $x++; 
    endwhile; 
    ); 
    print_r($a); 
} 
?> 
<form action="" method="post"> 
<input type="text" name="number" /> <input type="submit" name="submit" value="Submit"/> 
</form> 
    <form action="" method="post"> 
    <table> 
    <?php 
    if(isset($_POST['submit'])){ 
    for($i=1;$i<=$_POST['number'];$i++){ 
    echo "<tr> 
    <td><input type='text' name='firstName$i' /></td> 
    <td><input type='text' name='lastName$i' /></td> 
    </tr>"; 
    } 
    $i-=1; 
    echo "<input type='hidden' name='hide' value='$i' />"; 
    }   
    ?> 
    </table> 
    <input type="submit" value="Register" name="reg"/> 
    </form> 
</body> 
</html> 
+0

謝謝你檢查我的錯誤! =) – 2012-07-26 06:59:25

回答

7
$a = array(); 

while($x<=10): 
    $a[] = 'firstName'.$x; 
    $a[] = 'lastName'.$x; 
    $x++; 
endwhile; 

我再次讀到你的問題,如果你想這個「'firstName1','lastName1'」實際上是一個字符串,那麼,

$a = array(); 
while($x<=10): 
    $a[] = 'firstName'.$x.'lastName'.$x; 
    $x++; 
endwhile; 

或者根據您的問題標題(嵌套數組),那麼,

$x = 1; 
while($x<=10): 
    $a[] = array('firstName'.$x, 'lastName'.$x); 
    $x++; 
endwhile; 
+0

不需要首先聲明數組。你用簡短的語法來做到這一點。 – RobB 2012-07-26 06:07:05

+0

非常感謝你..這正是我需要..但是如果我想使它像這樣$ a [] =''$ _POST [firstName $ x]','$ _POST [lastName $ x]' 「;
並且輸出結果如下('Kevin Steve','Maningo') – 2012-07-26 06:21:21

+0

使用此$ a [] = $ _POST [「firstName」。$ x]。「,」。$ _ POST [「lastName」。$ x ]。 – Leon 2012-07-26 06:33:01

-1
if(isset($_POST['reg'])){ 
$x=1; 
$a = array(); 
while($x<=10){ 
$a[] = "firstName$x"; 
$a[] = "lastName$x"; 
$x++; 
} 

print_r($a); 

}

+0

我不確定使用雙引號完全符合重複的答案,因爲變量擴展不會改進任何重疊的連接。 – RobB 2012-07-26 06:09:19

+0

@RobB,好吧,當我在提問人員所用的單引號中使用變量時,出現了一些錯誤,我認爲最好的做法是在雙引號中使用變量而不是單引號。 – Suleman 2012-07-26 06:16:08

0

願這幫助你。

$x = 1; 
while($x <=10):  
    $a[] = '"\'firstName'.$x.'\', \'lastName'.$x.'\'"';  
    $x++; 
endwhile; 
echo '<pre>'; 
print_r($a); 
echo '</pre>'; 

輸出是:

Array 
(
    [0] => "'firstName1', 'lastName1'" 
    [1] => "'firstName2', 'lastName2'" 
    [2] => "'firstName3', 'lastName3'" 
    [3] => "'firstName4', 'lastName4'" 
    [4] => "'firstName5', 'lastName5'" 
    [5] => "'firstName6', 'lastName6'" 
    [6] => "'firstName7', 'lastName7'" 
    [7] => "'firstName8', 'lastName8'" 
    [8] => "'firstName9', 'lastName9'" 
    [9] => "'firstName10', 'lastName10'" 
)