|
|
|
| Добрый день.
Имею такой select:
<select size="5" name="Filter" multiple="">
<option value="">(все)</option>
<option value="64">Параметр 1</option>
<option value="65">Параметр 2</option>
<option value="66">Параметр 3</option>
</select>
|
Он простой, но у меня возникли проблемы с парсингом из него данных.
На выходе надо получить массив из value и названия option:
array(
"64" => "Параметр 1",
"65" => "Параметр 2",
"66" => "Параметр 3"
);
|
Прошу помощи в данной задачке.
Заранее спасибо. | |
|
|
|
|
|
|
|
для: maxfade
(14.02.2012 в 11:04)
| | Можно начать отталкиваться от следующего скрипта
<?php
$text = '<select size="5" name="Filter" multiple="">
<option value="">(все)</option>
<option value="64">Параметр 1</option>
<option value="65">Параметр 2</option>
<option value="66">Параметр 3</option>
</select>';
$pattern = "|value=\"(\d+)\">([^<]+)</option>|";
preg_match_all($pattern, $text, $out);
unset($out[0]);
echo "<pre>";
print_r($out);
echo "</pre>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(14.02.2012 в 13:02)
| | Спасибо, а изначально можно как-то сделать массив как я писал в первом посте.
Пока получилось сделать так, но после preg_match_all:
<?php
for($i=0;$i<count($out[1]);$i++) $v[$out[1][$i]] = $out[2][$i];
?>
|
Получаем:
Array
(
[64] => Телевидение
[65] => Интернет
[66] => Телефония
)
|
| |
|
|
|
|
|
|
|
для: maxfade
(15.02.2012 в 14:14)
| | после preg_match_all нужно выполнить еще
$new_arr = array_combine($out[1],$out[2]);
|
| |
|
|
|
|
|
|
|
для: Sfinks
(15.02.2012 в 16:10)
| | Спасибо, что-то раньше не обращал внимание на данную функцию :) | |
|
|
|