我有这个示例表数据,它实际上有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循环来获取类别中的更改,但我似乎没有找到方法去做,有关如何实现这一点的任何想法? / p>
我很欣赏任何想法
再次,我使用PHP
感谢
编辑:下面是数据即时通讯的链接,它有点不同,但它的原理相同
答案 0 :(得分:1)
首先:您的原始数组 - 如发布的是注释 - 如果是一个对象数组:这个初步说明是要理解语法->
,否则只是简单地阅读您的主要问题。
假设您的表格结果存储在数组$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
的每个元素 - 如果主键(产品)不存在于结果数组中,我将其创建为空数组;然后我对类别子键(大比萨饼等)执行相同的操作。最后,我添加补充类型。
的 eval.in demo 强>