如何在PHP中用字符串连接foreach循环

时间:2019-02-06 11:53:19

标签: php foreach concat

如何像这样在PHP中用字符串连接foreach循环

$traning [] = '<tr>
    <td style="width:30%" id="trainingCode_' . $key + 1 . '">
    <select class="select2 form-control" data-live-search= "true" name="trainingCode[]">
        <option value="0">SELECT CODE</option>'.
        foreach ($code=0 as $row) {
            //
        }
    .'</select>
    </td>
   </tr>';

有人可以帮助我吗?

预先感谢

5 个答案:

答案 0 :(得分:3)

代码拆分为每个人都清楚的部分:

$trContent = '<tr>
    <td style="width:30%" id="trainingCode_' . $key + 1 . '">
    <select class="select2 form-control" data-live-search= "true" name="trainingCode[]">
        <option value="0">SELECT CODE</option>';

// iterate over array and append to `$trContent`
foreach ($code as $row) {
    $trContent .= '<option></option>';
}

$trContent .= '</select>
    </td>
   </tr>';

$traning [] = $trContent;

答案 1 :(得分:2)

您的代码中几乎没有问题:

问题1:您不能将concat像变量一样使用,您只需要中断代码并将其存储在变量中,然后使用Concat,否则,这将给您解析错误。 / p>

问题2:不知道为什么在foreach中使用$code=0 as $row,这会给您Invalid argument的错误。

问题3:这只是我的假设,根据此id="trainingCode_' . $key + 1 . '",您正在循环中使用此代码,如果是,则这部分name="trainingCode[]"也将创建一个您获取记录时出现问题,您如何知道正确的关系?

您的代码示例:

<?php
$myString = '<tr>
    <td style="width:30%" id="trainingCode_' . $key + 1 . '">
    <select class="select2 form-control" data-live-search= "true" name="trainingCode[]">
        <option value="0">SELECT CODE</option>';

// use your foreach loop here
foreach ($code as $row) {
    $myString .= '<option value="'.$row.'">'.$row.'</option>'; // contact wit  $myString
}

$myString .= '</select></td></tr>';
$traning[] = $myString;
?>

答案 2 :(得分:1)

您可以执行以下操作:

$options = "";
foreach ($code=0 as $row) {
    $options .= "<option value='$code'>Code</option>";
}

$traning [] = '<tr>
<td style="width:30%" id="trainingCode_' . $key + 1 . '">
<select class="select2 form-control" data-live-search= "true" name="trainingCode[]">
    <option value="0">SELECT CODE</option>'.
    $options
.'</select>
</td>
</tr>';

答案 3 :(得分:1)

字符串内的Foreach循环不是最好的方法。但是一串又一串。

$options = "";
foreach ($rows as $code) {
  $options .= '<option value="'.$code '">' . $code . '</option>';
}
$traning [] = '<tr>
    <td style="width:30%" id="trainingCode_' . $key + 1 . '">
    <select class="select2 form-control" data-live-search= "true" name="trainingCode[]">
        <option value="0">SELECT CODE</option>'. $options .
    '</select>
    </td>
   </tr>';

答案 4 :(得分:1)

$htmlToConcat = "";
 foreach ($code=0 as $row) {
        $htmlToConcat .= "";
    }


$traning [] = '<tr>
    <td style="width:30%" id="trainingCode_' . $key + 1 . '">
    <select class="select2 form-control" data-live-search= "true" name="trainingCode[]">
    <option value="0">SELECT CODE</option>'.$htmlToConcat.'</select>
</td>
</tr>';