我想从数组创建 html 输出
但我无法完成代码。有没有可以完成的。
或者有没有更好的想法来编写这段代码?
$schema = array(
0 => array(
'tag' => 'div',
'class' => 'lines',
0 => array(
'tag' => 'div',
0 => array(
'tag' => 'span',
'key' => 'Product Name'
),
'val' => 'Soap'
)
1 => array(
'tag' => 'div',
0 => array(
'tag' => 'span',
'key' => 'Product Name'
),
'val' => 'Ball'
)
)
);
function get_output($schema){
foreach($schema as $k => $v){
if(is_array($v)){
$v = get_output($v);
}else{
$info = '<$tag $att>$key</$tag>';
if($k == 'tag'){ $info = str_replace('$tag',$v,$info); }
if($k == 'class'){ $info = str_replace('$att','"'.$v.'" $att',$info); }
}
}
return $info;
}
echo get_output($schema);
预期输出是
<div class="lines">
<div><span>Product Name</span>Soap</div>
<div><span>Pruduct Name</span>Ball</div>
</div><!-- #lines -->
更新 1
是否可以为以下数组创建相同的函数..
$schema = array(
'div' => array(
'class' => 'lines',
'div' => array(
'span' => array(
'key' => 'Product Name'
),
'val' => 'Soap'
),
'div' => array(
'span' => array(
'key' => 'Product Name'
),
'val' => 'Ball'
)
)
);
更新 2
那一个呢?
$schema = array(
'div' => array(
'class' => 'lines',
'div' => array(
'span' => array(
'key' => 'Product Name'
),
'val' => 'Soap'
),
'layer' => array(
'span' => array(
'key' => 'Product Name'
),
'val' => 'Ball'
)
)
);