paulenot
@paulenot
IT Issue

Как перебрать ассоциативный массив для формирования DOM?

У меня есть массив, из которого я хочу сформировать HTML разметку. Вот к примеру:
$html = [
		'head' => [
			'title' => 'My title',
		],
		'body' => [
			'h3' => 'h3 title',
			'p' => 'paragraph',
			'b' => 'bold',
			'i' => 'italic',
			'div' => [
				'b' => 'DIV bold',
				'p' => 'DIV paragraph',
				'i' => 'DIV italic',
			],
		],
	];
echo parse($html);

После того, как массив сформировался - я вызываю функцию parse() которая должна перебрать ключи и сформировать теги с содержимым.
Я столкнулся с проблемой, если начать перебирать массив с первого уровня вложенности, то теги(контейнеры) закрываются раньше чем в них передается контент.
  • Вопрос задан
  • 30 просмотров
Решения вопроса 1
paulenot
@paulenot Автор вопроса
IT Issue
Если кому нужно - вот функция которая рекурсивно разбирает подобные массивы:
function parse($html){
		$text = '';
		foreach ($html as $key => $value) {
			$text .= "<{$key}>";
			$text .= (!is_array($value) ? $value : parse($value));
			$text .= "</{$key}>".PHP_EOL; 
		}
		return $text;
	}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы