问题描述
下面我有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> ';} ?>
解决方法
如果要显示每个WC_Order_Item
的所有解密的串行密钥。您应该将第一个foreach循环放置在第二个循环中。
要显示变量值,您需要使用interpolation。
要插值(插入)变量并将其显示在字符串中,您需要使用双引号(“)。
例如:
$a = "Hello world";
echo '$a!';
将回显“ $ a!”从字面上看,与以下内容相反:
$a = "Hello world";
echo "$a!"
将回显“ Hello world!”
所以给它加双引号而不是单引号。