2011-11-20 59 views
4

我是從我的MySQL數據庫中選擇一個列選擇單列爲一維數組陣列[0] = ROW1,陣列[1] = ROW2等的MySQL在PHP

當我把它放到一個這樣的數組:

while($savedResult = mysql_fetch_array($savedQuery)) 
    { $savedArray[] = $savedResult; } 

它返回它作爲一個多維陣列使得陣列[ 0] [0] = row1,array [1] [0] = ro W2等

我想添加一些像這樣的:

while($i=0;$i<count($savedArray);$i++) 
{ 
$newSavedArray[$i] = $savedArray[$i][0] 
} 

但是有做到這一點更容易,更有效的方式?

回答

10

你非常接近。你只需要訪問$savedResult[0]檢索您的列,其追加到$savedArray

while($savedResult = mysql_fetch_array($savedQuery)) { 
    $savedArray[] = $savedResult[0]; 
} 
1

嘗試

$savedArray[] = $savedResult['can_id']; 

,而不是

$savedArray[] = $savedResult; 
2
while($savedResult = mysql_fetch_array($savedQuery)) { 
    $savedArray[] = $savedResult['can_id']; 
} 
0

當您最初得到的結果mysql可以將兩個while循環的內容合併爲一個:

while($result = mysql_fetch_array($savedQuery)) { 
    $savedArray[] = $result[0]; // or $result['can_id'] 
} 
1

這是一個mysqli和沒有循環的方法。它將你所有的代碼放到只有兩行。

$r = mysqli_query($c,'SELECT can_id FROM savedsearches WHERE user_id = "'.mysql_real_escape_string($user_id).'" AND insertTime >= "'.$lastSigTime.'"'); 
$savedArray = array_column(mysqli_fetch_all($r,MYSQLI_ASSOC),"can_id");