[英]How to create multi-dimensional associative array
我有这个示例表数据,它实际上具有ID,价格,更多内容,但是我想我可以使用此数据进行查询,即时通讯使用PHP作为我的语言:
id category product complement_type option
1 Pizza Large Pizza Bread Brown bread
2 Pizza Small Pizza Bread White bread
3 Pizza Small Pizza Ingredients Olives
4 Salads Green Salad Extras Bacon
5 Salads Cesars Salad Extras Lettuce
我已经有查询此表,
现在我想将ir转换为这种类型的数组
array(
[Pizza] => array(
[Large Pizza] => array(
[Bread] => Brown Bread
)
),
array(
[Small Pizza] => array(
[Bread] => White Bread
[Ingredients] => Olives
),
)
),
[Salads] => array(
[Green Salad] => array(
[Extras] => Bacon
)
[Cesar Salad] => array(
[Extras] => Lettuce
)
)
该数组是我想要实现的,但是我无法正确完成
我知道我必须使用for循环来循环它,也许添加一个while循环来获取类别中的更改,但是我只是似乎没有找到实现它的方法,关于如何实现这一点的任何想法?
我很欣赏任何想法
再次,即时通讯使用PHP
谢谢
编辑:这是指向数据即时获取的链接,虽然有点不同,但原理相同
首先:您的原始数组(已发布,是注释),如果是对象数组:此初步注意事项是理解语法->
,否则仅阅读您的主要问题就难以理解。
假设您的表结果存储在数组$array
,则可以按以下方式尝试:
$result = array();
foreach( $array as $row )
{
if( !isset( $result[ $row->category ] ) )
{
$result[ $row->category ] = array();
}
if( !isset( $result[ $row->category ][ $row->product ] ) )
{
$result[ $row->category ][ $row->product ] = array();
}
$result[ $row->category ][ $row->product ][ $row->complement_type ] = $row->option;
}
首先,我初始化一个空数组。 然后-通过一个foreach
循环,我处理$array
每个元素,并且-如果结果数组中不存在主键(产品),则将其创建为空数组; 然后我对类别子项(大披萨等)执行相同的操作。 最后,我添加补码类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.