Мне нужно, чтобы преобразовать массив как это:Преобразовать массив в параметрах
$arrList = Array
(
[0] => First Top element
[1] => Second Top element
[2] => Third Top element
[Fourth Top element] => Array
(
[0] => Fourth Top element - A
[1] => Fourth Top element - B
)
[3] => First Bottom element
[4] => Second Bottom element
[5] => Third Bottom element
[Fourth Bottom element] => Array
(
[0] => Fourth Bottom element - A
[1] => Fourth Bottom element - B
)
)
В настройках для моего списка, как это:
<option class="red">First Top element</option>
<option class="red">Second Top element</option>
<option class="red">Third Top element</option>
<optgroup label="Fourth Top element" class="red">
<option>Fourth Top element - A</option>
<option>Fourth Top element - B</option>
</optgroup>
<option class="green">First Bottom element</option>
<option class="green">Second Bottom element</option>
<option class="green">Third Bottom element</option>
<optgroup label="Fourth Bottom element" class="green">
<option>Fourth Bottom element - A</option>
<option>Fourth Bottom element - B</option>
</optgroup>
Так что я написал этот код:
foreach ($arrList as $element => $subelement) {
$strClass = '';
if(stristr('top',$subelement) || stristr('top',$element)) {
$strClass = 'class="red"';
} else if(stristr('bottom',$subelement) || stristr('bottom',$element)) {
$strClass = 'class="green"';
}
if(!is_array($subelement)) {
echo '<option '.$strClass.'>' . $subelement . '</option>'."\n";
} else {
echo '<optgroup label="'.$element.'" '.$strClass.'>'."\n";
foreach ($subelement as $elementLetter) {
echo '<option>' . $elementLetter . '</option>'."\n";
}
echo '</optgroup>'."\n";
}
}
Но он пишет:
<option >First Top element</option>
<option >Second Top element</option>
<option >Third Top element</option>
<optgroup label="Fourth Top element" class="red">
<option>Fourth Top element - A</option>
<option>Fourth Top element - B</option>
</optgroup>
<option >First Bottom element</option>
<option >Second Bottom element</option>
<option >Third Bottom element</option>
<optgroup label="Fourth Bottom element" class="green">
<option>Fourth Bottom element - A</option>
<option>Fourth Bottom element - B</option>
</optgroup>
Может кто-нибудь мне помочь?
Значит, ваш код работает, за исключением правильных классов? – kero
'$ strClass'' '' ', и ваш оператор if не запускается правильно. Вы можете использовать 'stristr ('top', $ subelement, true)', чтобы получить whats BEFORE top, потому что после этого нет ничего, и даже тогда я не уверен, что он будет работать, потому что есть пробел. – 13ruce1337