我想问一下如何用组织方式打印出这个数组
这是我的数组
> Array (
> [item1 under Category_1] => Category_1
> [item2 under Category_1] => Category_1
> [item3 under Category_2] => Category_2
> [item4 under Category_3] => Category_3
> [item5 under Category_3] => Category_3
> [item6 under Category_3] => Category_3
> [item7 under Category_3] => Category_3
> [item8 under Category_3] => Category_3 )
输出应该是这样的:
Category_1
item1
item2
Category_2
item3
Category_3
item4
item5
item6
item7
item8
我有什么方法可以做到这一点?或者我的逻辑方式来安排我的阵列是错误的?
我的数据库表记录是这样的
category item
1 1
1 2
2 3
3 4
3 5
3 6
3 7
3 8
任何人都可以提供帮助吗?
答案 0 :(得分:4)
您可能需要调整布局和换行符,但我认为您明白了这一点:
asort($your_array);
foreach($your_array as $key => $value){
if($key_temp != $key){
echo $key."\r\n";
}
echo " ".$value."\r\n";
$key_temp = $key;
}
答案 1 :(得分:1)
首先是查询
$myarray = array();
$result = mysql_query("SELECT category , item FROM mytable order by category , item ");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$myarray[$row['category'] ][] = $row['item'];
}
现在你得到一个二维数组
现在在2个循环中运行此数组(foreach或for) 然后打印entery的键,然后打印此entery中的项目
foreach ($array as $key => $val) {
print "Key $key\n";
for($i=0;$i<count($val);$i++)
print "val $val[$i]\n";
}
这是你可以改进它的例子; 我希望这个想法很明确