Foreach循环输出

Foreach loop output

下面是输出为“SKU:1018 SKU:1026”的代码。 我无法从此代码获得所需的输出,请帮助

我想要像 "SKU:1018,1026 "

这样的输出
   <?php
        $new= $order->get_items();
            foreach ( $new as $item ) {
                $product_id = $item['product_id'];
                $prod = new WC_Product($product_id);
                $sku=$prod->get_sku();
                    echo "SKU:".$sku." ";
            }
   ?>

您想针对字符串 SKU:.

显示所有 SKU

并且您正在循环中打印字符串 SKU

而不是那样,获取数组中的所有 SKU 并使用 implode() 函数打印它。

<?php
$new= $order->get_items();
$skus = array();
foreach ( $new as $item ) {
  $product_id = $item['product_id'];
  $prod = new WC_Product($product_id);
  $skus[] = $prod->get_sku();
}
echo "SKU:" . implode(',', $skus);
?>

使用数组处理多个字符串总是安全的,因为您可以轻松应用任何复杂的逻辑。

同样,如果没有找到数据,上面示例中的数组代码将简单地打印空白而不会导致任何错误。

试试这个:-

<?php
        $new= $order->get_items();
        $txt = "SKU: ";
            foreach ( $new as $item ) {
                $product_id = $item['product_id'];
                $prod = new WC_Product($product_id);
                $sku=$prod->get_sku();
                  $txt .= $sku.", ";
            }
             $txt = rtrim(", ", $txt);
       echo $txt;
   ?>

您应该能够通过以下方式获得 SKU:1018,1026 的所需输出:

$prefix = "SKU:"
foreach ($new as $item) {
    $product_id = $item['product_id'];
    $prod = new WC_Product($product_id);
    $sku = $prod->get_sku();
    echo $prefix . $sku;
    $prefix = ",";
}

这只是将初始前缀设置为 SKU: 然后,对于每个项目,输出该前缀后跟项目编号。在第一个输出后,它将前缀设置为 ,,以便后续项将以逗号开头。

尝试使用以下代码,使用内爆获取逗号分隔的数组值。

<?php
    $new= $order->get_items();
        foreach ( $new as $item ) {
            $product_id = $item['product_id'];
            $prod = new WC_Product($product_id);
            $sku[]=$prod->get_sku();
           }
     $skulist=implode(",",$sku);
     echo "SKU:".$skulist." ";
 ?>

更改 $sku

$sku[],一个数组,以及

最后一行

 echo "SKU:".implode(",",$sku);