• Как разбить одномерный ассоциативный массив и создать многомерный (php)?

    @sergiospb Автор вопроса
    Можно в цикле пройтись по элементам текущего массива (foreach например),

    Ну пока у меня мозгов хватило только на это, но тут добавляется все подряд. А дальше заклинило
    //$arr  -  имеющийся одномерный массив
    
    $newarr = array();
    
    foreach($arr as $key=>$val)
    {
    
    	if(preg_match('#---#',$val))
    	{
    		$a = $key;
    
    		continue;
    	}
    
    	$b[$key] = $val;
    
    	$newarr[$a] = $b;
    
    	
    }

    Но тут получается
    Array
    (
        [---ЗАГОЛОВОК1] => Array
            (
                [1-подзаголовок1] => 1-подзаголовок1
                [1-подзаголовок2] => 1-подзаголовок2
                [1-подзаголовок3] => 1-подзаголовок3
            )
    
        [---ЗАГОЛОВОК2] => Array
            (
                [1-подзаголовок1] => 1-подзаголовок1
                [1-подзаголовок2] => 1-подзаголовок2
                [1-подзаголовок3] => 1-подзаголовок3
                [2-подзаголовок1] => 2-подзаголовок1
                [2-подзаголовок2] => 2-подзаголовок2
            )
    
        [---ЗАГОЛОВОК3] => Array
            (
                [1-подзаголовок1] => 1-подзаголовок1
                [1-подзаголовок2] => 1-подзаголовок2
                [1-подзаголовок3] => 1-подзаголовок3
                [2-подзаголовок1] => 2-подзаголовок1
                [2-подзаголовок2] => 2-подзаголовок2
                [3-подзаголовок1] => 3-подзаголовок1
                [3-подзаголовок2] => 3-подзаголовок2
                [3-подзаголовок3] => 3-подзаголовок3
                [3-подзаголовок4] => 3-подзаголовок4
            )
    
    )
  • Как разбить одномерный ассоциативный массив и создать многомерный (php)?

    @sergiospb Автор вопроса
    мешает сразу к нужному виду привести?

    Да мешает то что хоть и заполняется "ручками", но через форму одной из CMS. Это попытка переделать стандартный предлагаемый (плоский) элемент формы "select" на сгруппированый с "optgroup"