2016-04-03 72 views
0

我想從數組中使用foreach循環獲取多維數組值。但它只是說未定義的索引名使用foreach循環展開多維數組

while($row = mysqli_fetch_assoc($qry)) { 
    $main[]['id'] = $row['categories_id']; 
    $main[]['name'] = $row['categories_name']; 
} 
foreach($main as $m) { 
    $main_filters .= '<li>'.$m['name'].'</li>'; 
} 

那麼肯定我在做什麼錯在這裏,任何想法,即我怎麼在陣列陣列$主,ID和名稱的所有元素的多維價值?

+2

如下面的回答,但你也不需要2個循環,在一個這樣做 – 2016-04-03 01:05:39

+1

只是一個友好的提示,你可能想要閱讀本頁:[如何問問指南](https://stackoverflow.com /幫助/如何提問),因此您始終可以確定您的問題很容易回答並且儘可能清晰。一定要包括你爲解決你遇到的問題所做的任何努力,以及當你嘗試修復這些問題時發生了什麼。另外不要忘記你的代碼和任何錯誤信息! –

+0

是的,使用一個循環更簡單。 – Source

回答

1

更換

$main[]['id'] = $row['categories_id']; 
$main[]['name'] = $row['categories_name']; 

$main[] = [ 
    'id' => $row['categories_id'], 
    'name' => $row['categories_name'] 
]; 

否則你在每次迭代中創建兩個新的元素,你不希望出現這種情況。