【发布时间】:2016-03-02 11:09:20
【问题描述】:
这是我从数据库中获取数据的嵌套 foreach 循环
while($attrib_rec = tep_db_fetch_array($attributes)) {
foreach( $options_values as $option => $options_value ){
foreach( $options_value as $options_value_key => $each_value ){
//make separate arrays of "option"
print 'option = '.$option.' , value = '.$each_value.'<br />';
}
}
}
我从这些循环中得到的输出是
option = Type , value = GOLD
option = Type , value = SILVER
option = Type , value = BRONZE
option = Purity , value = Rough
option = Purity , value = Neat
option = Purity , value = Mixed
option = Purity , value = Random
option = Model , value = Old
option = Model , value = latest
option = Model , value = GOLD 1.0
option = Model , value = GOLD 1.1
option = Model , value = GOLD 1.2
option = Model , value = GOLD 1.3
我想要实现的是将每个相同的“选项”值保存为一个数组。 例如,从上面的输出中我应该得到 3 个数组。即
$type = array('GOLD', 'SILVER', 'BRONZE');
$purity = array('Rough', 'Neat', 'mixed', 'Random');
$model = array('Old', 'Latest', 'GOLD 1.0', 'GOLD 1.1', 'GOLD 1.2', 'GOLD 1.3');
在while循环的每次迭代中,它应该根据“选项”生成数组的数量。
如果第一次在 while 循环的下一次迭代中生成 3 个数组(如本例所示),它可能会生成 2 或 4 个数组,具体取决于我从 DB 获得的相同数量的“选项”。
【问题讨论】:
-
您正在使用嵌套的
foreach循环,它将像显示它一样显示在输出中...您可以使用过滤器或group by
标签: php arrays loops foreach nested