2013-07-01 50 views
2

我對多維數組有點新,並且希望看看我是否正確地做。最好,我想命名陣列內的主陣列,以方便使用。來自數據庫結果的PHP多維數組

$unique_array = array(
    username=>array(), 
    user_id=>array(), 
    weeknumber=>array() 
    ); 

,然後我有一個while循環,檢查一些數據庫結果:

while($row = mysql_fetch_array($query)) //yes, I know mysql is deprecated 
{ 
$unique_array[] = username=>$row['username'], user_id=>$row['user_id'], week number=>['weeknumber']; 
} 

我不知道如果我從while循環中正確地將值數組中,或者如果它需要以其他方式完成。我找不到任何資源,我可以很容易地理解SO或其他地方處理多維數組中的命名數組中的查詢結果。

編輯後續問題:我還需要檢查數組的重複值,因爲會有多個完全相同的值,但我只想要其中的一個。

任何幫助表示讚賞!

編輯解決方案:

通過修改答案,我能夠創建代碼,以滿足我的需要。

數組初始化:

$unique_array = array(
    'username'=>array(), 
    'user_id'=>array(), 
    'weeknumber'=>array() 
    ); 

從while循環中構建陣列:

while($row = mysql_fetch_array($query)) 
{ 
$unique_array[] = array('username'=>$row['username'], 'user_id'=>$row['user_id'], 'weeknumber'=>$row['weeknumber']); 
} 

最後,我需要確保數組值是唯一的(有重複條目作爲數據庫和查詢限制的結果),在我有while循環後:

print_r(multi_unique($unique_array)); 
+0

你試圖通過字段或行來增長數組的方式? –

+0

按字段 - 我想我現在擁有它!我會稍微發佈代碼。 – RobDubya

回答

6

頂層是關聯數組還是數組數組?

如果它是一個關聯數組,它應具有結構是這樣的:

$unique_array = array(
    'username'=>array('John','Mike',...), 
    'user_id'=>array(1,2,3,...), 
    'week_number'=>array(1,2,3,...) 
); 

或者,如果它是一個數值數組,它應具有結構是這樣的:

$unique_array = array(
    array('username'=>'John', 'user_id'=>1, 'week_number'=>1), 
    array('username'=>'Mike', 'user_id'=>2, 'week_number'=>2), 
    array('username'=>'Sam', 'user_id'=>3, 'week_number'=>3), 
    ... 
) 

用於第一請使用下面的代碼:

while ($row = mysql_fetch_assoc($query)) { 
    $unique_array['username'][] = $row['username'], 
    $unique_array['user_id'][] = $row['user_id'], 
    $unique_array['week_number'][] = $row['week_number'], 
} 

對於第二種類型,它就像你的代碼。但是有一些語法問題:

while($row = mysql_fetch_array($query)) //yes, I know mysql is deprecated 
{ 
    $unique_array[] = array('username'=>$row['username'], 'user_id'=>$row['user_id'], 'week_number'=>$row['weeknumber']); 
} 
+0

這是一個關聯數組,但我不確切知道會填充它。所以對於像'username'=>數組('John','Mike',...)我不知道John或Mike會是誰,或者會有多少人。我可以將它保留爲'username'=> array()嗎? – RobDubya