首页 > 解决方案 > 如何在 PHP 的循环中递归地加入字符串

问题描述

我正在读取一些 JSON 数据,并希望将其作为函数的文本返回。为此,我正在执行以下操作。

<?php

    $json = '{"Business":["Accounting","Macroeconomics"],"0":["English","English","Other","Penmanship"],"Math":["Calculus","Fractions","Functions"],"Other":["Geography","Philosophy"],"Science":["Geology","Physical Science"]}';
    
    $json1 = json_decode($json, true);
    
    
    function rex($json){
        
        foreach ($json as $key=>$value){
            $x='<tr>
                <td style="width:30%;font-weight:700;padding-bottom:10px">'.$key.'</td>
                <td>'.implode(' ,',$value).'</td>
               </tr>';
           echo $x;
        }
    }
    
    rex($json1);
    
    ?>

我不知道如何从函数中生成最终的连接字符串。如果我echo这样做了,那么它会返回我想要的内容,但是如何在变量中捕获该输出。$x.=$x也无济于事。这些天我是PHP的初学者。

标签: php

解决方案


return从函数和使用连接。

...
function rex($json){
  $x = '';
  foreach ($json as $key => $value) {
    $x .= '
    <tr>
      <td style="width:30%;font-weight:700;padding-bottom:10px">'.$key.'</td>
      <td>'.implode(', ',$value).'</td>
    </tr>';
  }
  return $x;  
}
    
echo rex($json1);

推荐阅读