Задать вопрос
Ответы пользователя по тегу PHP
  • Как правильно написать рекурсивную функцию для создания дерева меню из многомерного ассоциативного массива?

    @EDF Автор вопроса
    Век живи - век учись! Банально, но факт...
    Отвечу сам, может пригодится кому. Итоговое решение получилось примерно таким:
    function build_tree( $input_array, $output = '' )
    {
    	if( !is_array( $input_array ) )
    	{
    		return '';
    	}
    
    	if( array_key_exists( 'group', $input_array ) )
    	{
    		$output .= '<ul>';
    	}
    
    	foreach( $input_array as $key => $value )
    	{
    		if( ( isset( $value[ '@attributes' ][ 'txtid' ] ) ) && ( $key !== 'parameter' ) )
    		{
    			$id    = $value[ '@attributes' ][ 'id' ];
    			$title = $value[ '@attributes' ][ 'txtid' ];
    
    			$output .= '<li>' . $title;
    
    			if( array_key_exists( 'group', $value ) )
    			{
    				$output .= build_tree( $value );
    			}
    
    			$output .= '</li>';
    		}
    		elseif( $key !== 'parameter' )
    		{
    			$output .= build_tree( $value );
    		}
    	}
    
    	if( array_key_exists( 'group', $input_array ) )
    	{
    		$output .= '</ul>';
    	}
    
    	return $output;
    }
    Ответ написан
    Комментировать