PHP-код вывода массивов в HTML
Все программисты PHP (с любым уровнем подготовки), конечно знаю, как вывести массив PHP в HTML-код: ну, конечно же через цикл!
Я предлагаю это сделать при помощи функции, которая отобразит любой массив в любом виде c HTML оформлением. Данной функции мы передаём в качестве аргументов: массив и формат отображения его в виде другой функции.
Такой подход даёт универсальность данной функции отображения массива и значительно сокращает дублирование PHP кода.
Пример:
<?php //Двумерный массив $arr1=[ [ 'surname'=>'Алехин', 'name'=>'Геннадий', 'age'=>'40', ], [ 'surname'=>'Smith', 'name'=>'Джон', 'age'=>'25', ], ]; //var_dump($arr1); //Класс для работы с HTML class HTMLview { function getArrCode($arr,$f) { $n=0; $result=''; foreach ($arr as $k => $v) { $result.=$f($k,$v,++$n); } return $result; } } $code=new HTMLview;//Создаём объект класса echo $code->getArrCode($arr1,function($k,$v,$n=0) { return '<p>'.$n.') <b>'.$v['surname'].'</b> '.$v['name'].' - '.$v['age']." лет.</p>\n"; //return '<div><b>'.$v['name'].'</b> '.$v['surname'].' - '.$v['age']." лет.</div>\n"; }); //<p>1) b>Алехин/b> Геннадий - 40 лет./p> ?>
Обратите внимание: в данную функцию в виде аргументов мы можем передавать любые массивы и любые функции форматирования, при этом получать любой вид отображения!
А можно и ещё круче...
<?php //Двумерный массив $arr1=[ [ 'surname'=>'Алехин', 'name'=>'Геннадий', 'age'=>'40', ], [ 'surname'=>'Smith', 'name'=>'Джон', 'age'=>'25', ], ]; print_r($arr1); class Gena { function getArr($arr,$f1,$f2) { $r=''; $n=0; foreach ($arr as $k => $v) { $r[$f1($k,$v,$n)]=$f2($k,$v,$n); $n++; } return $r; } } $oGena=new Gena; $r=$oGena->getArr($arr1, function($k,$v,$n) { return $v['surname']; }, function($k,$v,$n) { $n++; return "$n) $v[surname] $v[name] - $v[age]"; } ); print_r($r); /* Array ( [Алехин] => 1) Алехин Геннадий - 40 [Smith] => 2) Smith Джон - 25 ) */ ?>