多维数组结构到PHP HTML输出?

多维数组结构到PHP HTML输出?,php,html,multidimensional-array,output,Php,Html,Multidimensional Array,Output,我在我的网站上重复了一些章节 我正在努力减少它们 我的方法是,有一次我将创建一个html模式(预定义为数组),通过这个模式,我的函数将解释用户需要什么样的输出,并根据我的变量输出结果 我的问题是我找不到一个方法来解决这个问题 输入变量可能是(不定式) 预期产出正常 <div class="lines"> <div><span>Country Name</span>USA</div> <div><span

我在我的网站上重复了一些章节

我正在努力减少它们

我的方法是,有一次我将创建一个html模式(预定义为数组),通过这个模式,我的函数将解释用户需要什么样的输出,并根据我的变量输出结果

我的问题是我找不到一个方法来解决这个问题

输入变量可能是(不定式)

预期产出正常

<div class="lines">
    <div><span>Country Name</span>USA</div>
    <div><span>Country Name</span>Canada</div>
    <div><span>Country Name</span>Mexico</div>
</div>

<div class="lines">
    <div><span>Country Name</span>USA</div>
    <div><span>Country Name</span>Canada</div>
</div>

<div class="lines">
    <div><span>Country Name</span>USA</div>
</div>
我的函数从该模式创建输出。(架构可能会根据用户需要进行扩展。)

更新1


我当前的输出是下面的html代码,我找不到一种方法来推送变量。哪些是国家/地区名称

<div class="lines">
    <div><span></span></div>
    <div><span></span></div>
</div>

你的问题到底是什么?@Patrick Kostjens我想从这个函数中得到定义为@question的输出。那么你现在得到了什么?你期望什么呢?我只得到一个变量,我找不到一种方法把我的变量放入输出函数中。
$schema = array(
    array(
        'tag' => 'div',
        'class' => 'lines',
        array(
            'tag' => 'div',
             array(
                'tag' => 'span',
                'key' => '$key'
            ),
            'key' => '$key'
        ),
    )
);
function get_output($schema, $vals, $t = -1){
    $t++;

    $tag = "";
    $atts = array();
    $keys = array();
    $code = array();

    foreach($schema as $k => $v){        
        if(is_array($v)){
            $keys[] = get_output($v, $vals, $t);
        } else {
            switch($k){
                case "tag": $tag = $v; break;
                case "key": break;
                case "type":   break;
                default: $atts[$k] = $v; break;
            }
        }    
    }

    if($tag){
        $code[] = "<$tag"; 
        foreach($atts as $k=>$v)
        { 
            $code[] = ' '.$k.'="'.urlencode($v).'"'; 
        }
        $code[] = ">";
        $code = array(implode('', $code));
    }
    foreach($keys as $k)
    { 
      $code[] = $k;
    } 

    if($tag){
        $code[] = '</'.$tag.'>'; 
    }
    return implode("", $code);
}
$vals = array('Country Name' => 'USA', 'Country Name' => 'Canada', 'Country Name' => 'Mexico');

echo get_output($schema, $vals, -1);
<div class="lines">
    <div><span></span></div>
    <div><span></span></div>
</div>
$schema = array(
    'div' => array(
        'class' => 'lines',
        'div' => array(
             'span' => array(
                'key' => '$k[0]'
            ),
            'key' => '$k[1]'
        )
);