是否可以在一个键中存储多个值?
我遍历我的数据库中具有以下属性的所有项目:
category, itemname and itemurl
现在我想按类别对所有项目进行排序,这意味着某些项目具有相同的类别,我希望它们在我的对象中一起显示,如下所示:
Items [
category1 => item1[], item2[], item3[]
category2 => item4[], item5[]
category3 => item6[]
]
感谢您的帮助!
解决方案: 您可以将值存储在匿名数组
中while ( $stmt->fetch() ) {
$tempArray = [
'xxx' => xxx,
'yyy' => yyy,
'zzz' => zzz
];
Items[category][ ] = $tempArray;
}
答案 0 :(得分:1)
我可能没有正确理解这个问题,但是在php中很容易为每个键存储多个值
$items[0]['category'] = "Category 1"
$items[0]['itemname'] = "Item Numero Uno"
$items[0]['itemrul'] = "myfavoriteitem.com"
$items[1]['category'] = // . . . you get it
按类别重组它们应该相当容易
$categorized = array();
foreach ($items as $item) {
$categorized[$item['category']][] = $item; //append item to the category
}
答案 1 :(得分:0)
我不确定我是否完全理解你,但如果我对你正在努力实现的目标是正确的话:
只需使用一个数组来存储它们(你不能拥有一个对应一个对象的一个键,但你可以有一个键到一个对象而一个对象可以存储许多其他对象)
Items [
category1 => array(item1[], item2[], item3[]),
category2 => array(item4[], item5[]),
category3 => array(item6[])),
]