迭代数组并替换模板中的数据

时间:2011-10-18 15:55:36

标签: php arrays multidimensional-array

我有一个带有“标签”的XML文档,它们会根据数组中的数据进行替换。有两种类型的标签,一种是用于定义集合的父标签,另一种是仅由值替换的标签。以下是用于构建和填写模板的数据示例:

$array  = array(
 'name'     => 'name',
 'city' =>  'city',
 'addresses'    =>  array(
    array(
     'street'   => '123',
     'city' =>  'main'
    ),
    array(
     'street'   => '123',
     'city' =>  'main'
     'phone'    =>  array(
        array(  
        'home'  =>  '123456',                                                                 'work'    =>  '1234567'
        )

以下是一个示例模板:

        <name>%name%</name>
        <city>%city%</city>
        %%addresses%%
            <street>%street%</street>
            <city>%city%</city>
            %%phone%%
                <home>%%home%%</home>
                <work>%%work%%</work>
            %%/phone%%
        %%/addresses%%

数组的键值与模板中的标记匹配。如果密钥本身是一个数组,那么它将遍历该密钥标记(%%)中包含的数据。

我尝试过做一个递归函数,但它似乎只能工作一层。

有没有人有任何建议?谢谢!

1 个答案:

答案 0 :(得分:1)

我建议您使用现有的简单模板语言“只是工作” tm ,如Mustache(还有很多其他的)。我知道Mustache支持循环数组,使用它,完成工作,易于集成。适用于多种语言。