2012-03-07 57 views
0

我正在動態地迭代數據。該數據包含三個字段,我想要插入到一個數組中.. Array(field1,field2,field3)..然後將該數組插入到另一個數組中(嵌套它)。然後將另一個數組嵌入到主數組中。問題是我不知道如何去做,這樣我就得到了一個包含所有嵌套數組的循環。什麼是在PHP中動態添加數組的最佳方式

$myArray=array(); 
    while($row=mysql_fetch_array($result)) 
    { 
     $myArray+= Array(field1,field2,field3); 
    } 

你如何動態添加它們......我知道我這樣做的方式是錯誤的......但你怎麼做到的?!

+0

PDO已經使用fetchArray來做到這一點 – dynamic 2012-03-07 16:54:21

+1

使用'[]'附加數組:'$ myArray [] = $ row' – 2012-03-07 16:54:38

+0

或者如果您因爲某些原因只需要幾個字段'$ myArray [] = array($行['f1'],$ row ['f9']);' – 2012-03-07 16:55:21

回答

1
while ($row = mysql_fetch_assoc($result1) { 
    $myArray[] = array($row['field1'], $row['field2'], $row['field3']); 
} 

如果你想添加的每一行的全部內容,即在一排每一個領域,你可以只使用

while ($row = mysql_fetch_assoc($result1) { 
    $myArray[] = $row; 
} 

或者即將單行:

while ($myArray[] = mysql_fetch_assoc($result)); 

然後您可以訪問例如第5行的字段2 with $ myArray [4] ['field2']

在您的問題中,您使用函數mysql_fetch_array。請使用mysql_fetch_assoc,因爲這當然是更好的方法。 mysql_fetch_array返回每個值兩次,一次使用數字索引(例如1,但請注意,這取決於查詢中查詢字段的順序!),一次使用關聯索引。 mysql_fetch_assoc只用其關聯索引(例如'field2')返回每個值一次。

+0

您的回答是正確的 – BlackFire27 2012-03-07 17:07:48

1

mysql_fetch_assocArray Pop?

$myArray=array(); 
while($row=mysql_fetch_assoc($result)) 
{ 
     array_push($myArray, $row['field1'], $row['field2'], $row['field3']); 
} 

http://www.php.net/manual/en/function.array-push.php

+0

這將工作,但只有當你使用$ row ['field1']而不是field1等等。你的答案是無效的PHP。 – 2012-03-07 17:05:50

+0

你的答案也是對的。我忘了那個功能 – BlackFire27 2012-03-07 17:15:44

+0

謝謝亨德里克,修好了。 – 2012-03-07 17:16:16

相關問題