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
)
*/
?>


