我有一个包含24个值的数组我要创建4个<optgroup></optgroup>
,表示每个<optgroup></optgroup>
在选择框中包含6个值,使用PHP foreach
循环
我想来自
1 Col/1 row(lg)
至12 Col/1 row(lg)
选项组标签为“大型设备”
1 Col/1 row(md)
至12 Col/1 row(md)
选项组lable nam是“中型设备”
1 Col/1 row(sm)
至12 Col/1 row(sm)
选项组lable nam是“小型设备”
1 Col/1 row(xs)
至12 Col/1 row(xs)
选项组lable nam是'超小设备'
$YPE_grid = array( '1 Col/1 row(lg)' => 12.1, '2 Col/1 row(lg)' => 6.2, '3 Col/1 row(lg)' => 4.3, '4 Col/1 row(lg)' => 3.4, '6 Col/1 row(lg)' => 2.5, '12 Col/1 row(lg)' => 1.6 , '1 Col/1 row(md)' => 12.7, '2 Col/1 row(md)' => 6.8, '3 Col/1 row(md)' => 4.9, '4 Col/1 row(md)' => 3.10, '6 Col/1 row(md)' => 2.11, '12 Col/1 row(md)' => 1.12, '1 Col/1 row(sm)' => 12.13, '2 Col/1 row(sm)' => 6.14, '3 Col/1 row(sm)' => 4.15, '4 Col/1 row(sm)' => 3.16, '6 Col/1 row(sm)' => 2.17, '12 Col/1 row(sm)' => 1.18, '1 Col/1 row(xs)' => 12.19, '2 Col/1 row(xs)' => 6.21, '3 Col/1 row(xs)' => 4.22, '4 Col/1 row(xs)' => 3.23, '6 Col/1 row(xs)' => 2.24, '12 Col/1 row(xs)' => 1.25 );
答案 0 :(得分:1)
根据您给出的示例,我根据您的关键字划分选项组,首先我使用strpos获取这些位置:lg,md,sm和xs,然后我创建了基于的选项组的名称你的榜样。在我创建新数组并将其中的每个值分组到指定的组之后,我开始迭代选项组并选择。检查一下:
$YPE_grid = array( '1 Col/1 row(lg)' => 12.1, '2 Col/1 row(lg)' => 6.2, '3 Col/1 row(lg)' => 4.3, '4 Col/1 row(lg)' => 3.4, '6 Col/1 row(lg)' => 2.5, '12 Col/1 row(lg)' => 1.6 , '1 Col/1 row(md)' => 12.7, '2 Col/1 row(md)' => 6.8, '3 Col/1 row(md)' => 4.9, '4 Col/1 row(md)' => 3.10, '6 Col/1 row(md)' => 2.11, '12 Col/1 row(md)' => 1.12, '1 Col/1 row(sm)' => 12.13, '2 Col/1 row(sm)' => 6.14, '3 Col/1 row(sm)' => 4.15, '4 Col/1 row(sm)' => 3.16, '6 Col/1 row(sm)' => 2.17, '12 Col/1 row(sm)' => 1.18, '1 Col/1 row(xs)' => 12.19, '2 Col/1 row(xs)' => 6.21, '3 Col/1 row(xs)' => 4.22, '4 Col/1 row(xs)' => 3.23, '6 Col/1 row(xs)' => 2.24, '12 Col/1 row(xs)' => 1.25 );
$newArray = array();
foreach($YPE_grid as $key => $value) {
if(strpos($key,"lg") > 0) {
$newArray['"Large Devices"'][$key] = $value;
} else if(strpos($key,"md") > 0) {
$newArray['"Medium devices"'][$key] = $value;
} else if(strpos($key,"sm") > 0) {
$newArray['"Small devices"'][$key] = $value;
} else if(strpos($key,"xs") > 0) {
$newArray['"Extra small devices"'][$key] = $value;
}
}
$select = "";
$select .= "<select>";
foreach($newArray as $key => $value) {
$select .= "<optgroup label=" . $key . ">";
if(is_array($value)) {
foreach($value as $key2 => $value2) {
$select .= "<option value='" . $key2 . "'>" . $key2 . "(" . $value2 . ")</option>";
}
}
$select .= "</optgroup>";
}
$select .= "</select>";
echo $select;