PHP在嵌套循环中创建单独的数组
下面是从数据库获取数据的嵌套foreach循环PHP在嵌套循环中创建单独的数组,php,arrays,loops,foreach,nested,Php,Arrays,Loops,Foreach,Nested,下面是从数据库获取数据的嵌套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 "opt
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 />';
}
}
}
我想要实现的是将每个相同的“选项”值保存到一个数组中。
e、 从上面的输出我应该得到3个数组。i、 e
$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获得的相同数量的“选项”。您可以使用一个简单数组对它们进行分类。看看这个例子:
$sorted_options = array();
while($attrib_rec = tep_db_fetch_array($attributes)) {
while($attrib_rec = tep_db_fetch_array($attributes)) {
foreach( $options_values as $option => $options_value ){
foreach( $options_value as $options_value_key => $each_value ){
sorted_options[$option][] = $each_value;
}
}
}
}
echo '<pre>'.print_r($sorted_options, true).'<pre>';
$sorted_options=array();
while($attrib\u rec=tep\u db\u fetch\u数组($attributes)){
while($attrib\u rec=tep\u db\u fetch\u数组($attributes)){
foreach($options\u值为$option=>$options\u值){
foreach($options\u value作为$options\u value\u key=>$each\u value){
已排序的_选项[$option][]=$each_值;
}
}
}
}
回显“”。打印选项($sorted\u options,true)。“”;
您可以使用一个简单的数组对它们进行分类。看看这个例子:
$sorted_options = array();
while($attrib_rec = tep_db_fetch_array($attributes)) {
while($attrib_rec = tep_db_fetch_array($attributes)) {
foreach( $options_values as $option => $options_value ){
foreach( $options_value as $options_value_key => $each_value ){
sorted_options[$option][] = $each_value;
}
}
}
}
echo '<pre>'.print_r($sorted_options, true).'<pre>';
$sorted_options=array();
while($attrib\u rec=tep\u db\u fetch\u数组($attributes)){
while($attrib\u rec=tep\u db\u fetch\u数组($attributes)){
foreach($options\u值为$option=>$options\u值){
foreach($options\u value作为$options\u value\u key=>$each\u value){
已排序的_选项[$option][]=$each_值;
}
}
}
}
回显“”。打印选项($sorted\u options,true)。“”;
试试这个-
$options = array(
'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'),
);
试试这个-
$options = array(
'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'),
);
此时,您只是打印值,而不是将其存储在数组中。您可能希望将代码更改为以下内容:
echo "<pre>".print_r($options, true)."</pre>";
echo "<pre>".print_r($options['purity'], true)."</pre>";
这将创建一个如下所示的数组:
echo "<pre>".print_r($options, true)."</pre>";
echo "<pre>".print_r($options['purity'], true)."</pre>";
您可以这样将其显示在屏幕上:
";
它将打印出粗略、整洁、混合、随机的值
您可以了解有关多维数组的更多信息,这简单地解释了:
多维数组是包含一个或多个数组的数组
目前,您只是打印值,而不是将其存储在数组中。您可能希望将代码更改为以下内容:
echo "<pre>".print_r($options, true)."</pre>";
echo "<pre>".print_r($options['purity'], true)."</pre>";
这将创建一个如下所示的数组:
echo "<pre>".print_r($options, true)."</pre>";
echo "<pre>".print_r($options['purity'], true)."</pre>";
您可以这样将其显示在屏幕上:
";
它将打印出粗略、整洁、混合、随机的值
您可以了解有关多维数组的更多信息,这简单地解释了:
多维数组是包含一个或多个数组的数组
您正在使用嵌套的
foreach
循环,该循环将向输出显示,就像它正在显示一样。。。您可以使用过滤器或分组方式
您正在使用嵌套的foreach
循环,该循环将向输出显示,就像它正在显示它一样。。。您可以使用过滤器或分组方式谢谢@Henders的解释。我很快就要解决我的实际问题了。如果我有单独的$type=array('GOLD','SILVER','brown'),我想知道如何实现嵌套的foreach来生成组合(每个值在另一个值上的图像)$纯度=数组(“粗略”、“整洁”、“混合”、“随机”)$型号=数组('Old'、'Latest'、'GOLD 1.0'、'GOLD 1.1'、'GOLD 1.2
、'GOLD 1.3');'我会使用foreach($type为$base){foreach($attr1为纯度){foreach($attr2为模型){//72个组合将被生成(3*4*7)}}
谢谢@Henders的解释。我很快就要解决我的实际问题了。如果我有单独的$type=array('GOLD','SILVER','brown'),我想知道如何实现嵌套的foreach来生成组合(每个值在另一个值上的图像)$纯度=数组(“粗略”、“整洁”、“混合”、“随机”)$型号=数组('Old'、'Latest'、'GOLD 1.0'、'GOLD 1.1'、'GOLD 1.2
、'GOLD 1.3');'我将使用foreach($type为$base){foreach($attr1为纯度){foreach($attr2为模型){//72个组合将被生成(3*4*7)}}