Получить многомерный массив из исходных html-данных

Darkstar

Новичок
Получить многомерный массив из исходных html-данных

К предыдуще задаче: как оказывается, у меня не было нормально подготовленного для php массива....

Условие: имеется запись в html/Word, которую можно редактировать c помощью различных замен и подстановочных символов:

*
|i=No|,70
;
|cv|,B,
;
|sah|,B,K,
;
|tv|,D,
;
*
где |i=No|,70 -- 70-ый номер, |cv| -- некое имя, а B, K -- его значение

Нужно получить для первого столбца эквивалент:

$arr[70]["|cv|"][0]= "B";
$arr[70]["|sah|"][0]= "B";
$arr[70]["|sah|"][1]= "K";
$arr[70]["|tv|"][0]= "D";




После
PHP:
 $ar2 = explode(";",$str);

получается

Array ( [0] => |i=No|,70 [1] => |cv|,B, [2] => |sah|,B,K, [3] => |tv|,D,)

Но дальше затык. Не могу получить многомерный массив.
 
теперь дели элементы по запятым и первый элемент делай ключем для элемента-пустого массива (если его не существует еще), а остальные элементами, которые в этот массив добавляешь.
 
Как, чем делить. Не работает дальше explode -- потому что это массив, а не строка.

-~{}~ 13.08.09 13:27:

Так что -- никто не знает...?
 
А... вот так вот. Ну кажется, понял.

-~{}~ 13.08.09 18:04:

Нет, не понял.
Я не знаю, как рекурсивно вписать в единую структуру массива, так чтобы она ПРИБАВЛЯЛАСЬ при каждом ходе цикла.

Допустим, я пишу через merge (бред):

for($i = 0; $i < sizeof($ar2); ++$i)
{
$q1 = explode(",",$ar2[$i]);
print_r($q1);
echo "<br><br>";

$q2 = explode(",",$ar2[$i+1]);
print_r($q2);
echo "<br><br>";

$q3=array_merge_recursive($q1,$q2);
}
 
Darkstar, при чем здесь array_merge_recursive, если $q1[0] должен быть распознан как |i=No| и тогда $q1[1] должен быть создан как индекс главного создаваемого массива, а следующие найденные $q1[0] до следующего |i=No| будут ключами в массиве-элементе, значениями же будет тоже массив из $q1[1], $q1[2] и т.д.
 
никаких ф-й тут не нужно, просто создавать массив нужной структуры из исходного
 
Dimagolov: т.е. вы считаете, что здесь все через тот же for, никаких дополнительных операторов не нужно?
 
никаких дополнительных операторов не нужно
странная формулировка. если твой код не делает то, что тебе надо, но надо дописать операторы для того, чтобы он делал нужное, разве нет?
 
Сверху