在表格布局中设置动态值

时间:2019-08-08 18:32:08

标签: php str-replace

我有一个html变量。在此变量中,我在td中有一个SN_NO,CUST_REF_NO,NAME。我需要用数组中的动态值替换此变量。像这样的数组值

$result = array(
            array(
                'sn_no' => '1',
                'cust_ref_no' => 'A123',
                'name' => "AAA",
                'id'=>'111'  
            ),
            array(
                'sn_no' => '2',
                'cust_ref_no' => 'B123',
                'name' => "BBB",
                'id'=>'222' 
            ),
            array(
                'sn_no' => '3',
                'cust_ref_no' => 'C123',
                'name' => "CCC",
                'id'=>'333' 
            ),
);

$tr_html ='<tr>
    <td class="text-left"  id="abc" width="3%">SN_NO</td>
    <td class="text-left"  id="abc" style="font-size: 0.6rem;" width="10%">CUST_REF_NO</td>
    <td class="text-left"  id="abc" style="font-size: 0.6rem;" width="15%">NAME</td>
</tr> ';

我需要一个最终结果应该是这样

$tr_html ='<tr>
    <td class="text-left"  id="abc" width="3%">1</td>
    <td class="text-left"  id="abc" style="font-size: 0.6rem;" width="10%">A123</td>
    <td class="text-left"  id="abc" style="font-size: 0.6rem;" width="15%">AAA</td>
</tr> 

<tr>
    <td class="text-left"  id="abc" width="3%">2</td>
    <td class="text-left"  id="abc" style="font-size: 0.6rem;" width="10%">B123</td>
    <td class="text-left"  id="abc" style="font-size: 0.6rem;" width="15%">BBB</td>
</tr> 

<tr>
    <td class="text-left"  id="abc" width="3%">3</td>
    <td class="text-left"  id="abc" style="font-size: 0.6rem;" width="10%">C123</td>
    <td class="text-left"  id="abc" style="font-size: 0.6rem;" width="15%">CCC</td>
</tr> 

';

我尝试了以下代码

foreach ($result as $key => $val){
   $test = str_replace('SN_NO', $val['sn_no'], $tr_html);
   $test .= str_replace('CUST_REF_NO', $val['cust_ref_no'], $tr_html);
   $test .= str_replace('NAME', $val['name'], $tr_html);

}
echo $test;

请帮助我。预先感谢

2 个答案:

答案 0 :(得分:1)

<?php

$result = array(
    array(
        'sn_no' => '1',
        'cust_ref_no' => 'A123',
        'name' => "AAA",
        'id'=>'111'
    ),
    array(
        'sn_no' => '2',
        'cust_ref_no' => 'B123',
        'name' => "BBB",
        'id'=>'222'
    ),
    array(
        'sn_no' => '3',
        'cust_ref_no' => 'C123',
        'name' => "CCC",
        'id'=>'333'
    ),
);

$tr_html ='<tr>
    <td class="text-left"  id="abc" width="3%">SN_NO</td>
    <td class="text-left"  id="abc" style="font-size: 0.6rem;" width="10%">CUST_REF_NO</td>
    <td class="text-left"  id="abc" style="font-size: 0.6rem;" width="15%">NAME</td>
</tr> ';

$finalResult = '';

foreach ($result as $row) {
    $tmp = $tr_html;
    foreach ($row as $key => $value) {
        $tmp = str_replace(strtoupper($key), $value, $tmp);
    }
    $finalResult .= $tmp;
}

echo $finalResult;

答案 1 :(得分:1)

您可以在str_replace()中使用数组一次替换多个值。

$test = '';
foreach ($result as $key => $val){
  $test .= str_replace(
    array('SN_NO', 'CUST_REF_NO', 'NAME'),
    array($val['sn_no'], $val['cust_ref_no'], $val['name']),
    $tr_html);
}
echo $test;