【问题标题】:Is there away to echo another foreach array values in a foreach loop?是否可以在 foreach 循环中回显另一个 foreach 数组值?
【发布时间】:2021-01-22 21:47:46
【问题描述】:

下面我有 2 个 foreach 循环,我想在我的第二个 foreach 循环中显示第一个 foreach 循环值,但每当我尝试时,只会显示第一个数组值。下面是我的代码

<?php
  $order_id = $order->get_id();
                                                 
  $serial_numbers = WC_Serial_Numbers_Query::init()->from( 'serial_numbers' )->where( 'order_id', intval( $order_id ) )->get();
  foreach ($serial_numbers as $serial_number) {
      $decrypted_key = WC_Serial_Numbers_Encryption::maybeDecrypt( $serial_number->serial_key ); 
  }

echo '
  foreach ($order->get_items() as $key => $lineItem) {
      $product_id = $lineItem['product_id'];
      $product = wc_get_product( $product_id );
    <div>
      <table>
        <tbody>
                  <tr>
                  <td>
                  <div>' . $lineItem['name'] . '</div>
                      </td>
                       </tr>
                        <tr>
                         <td>
                         <div>S/N:' . $decrypted_key . '</div>
                         </td>
                         </tr> 
</tbody>
</table>  ';} ?>

【问题讨论】:

    标签: php arrays wordpress woocommerce foreach


    【解决方案1】:

    要显示变量值,您需要使用 interpolation

    要插入(插入)变量并将其显示在字符串中,您需要使用双引号 (")。

    例如:

    $a = "Hello world";
    echo '$a!';
    

    将回显“$a!”从字面上看,与:

    $a = "Hello world";
    echo "$a!"
    

    将回显“Hello world!”

    所以试试用双引号而不是单引号。

    【讨论】:

      【解决方案2】:

      如果您想显示每个WC_Order_Item 的所有解密序列密钥。您应该将第一个 foreach 循环放在第二个循环中。

      【讨论】:

      • 这将复制订单项目,例如,如果我们有 3 个订单项目,它将复制每个项目,那么我们将有 6 个而不是 3 个。如果我们将第一个 foreach 循环放在第二个循环中,那就是会发生,我们不能在回声中添加 foreach。谢谢
      • 当您将第一个 foreach 放在第二个中时,您不会有重复的订单项目。您将拥有重复的串行密钥。您能否以您已经写出所需的 HTML 的方式编辑您的问题?所以不用PHP。这样结果会更清楚,我可以更好地指导您哪种解决方案适合。现在有点模糊了。
      • 好的,您想如何选择要为每个订单项目显示的序列号?从现在开始,您只是在打印最后一次在 foreach 循环中设置 $decrypted_key 的时间。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-21
      • 1970-01-01
      相关资源
      最近更新 更多