Foreach循环输出

时间:2015-01-02 05:39:58

标签: php woocommerce

以下是输出为" 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." ";
            }
   ?>

5 个答案:

答案 0 :(得分:4)

您希望针对字符串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);
?>

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

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

答案 1 :(得分:1)

您应该能够获得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:,然后,对于每个项目,输出该前缀后跟项目编号。输出第一个后,它会将前缀设置为,,以便后续项目前面会有逗号。

答案 2 :(得分:1)

更改$sku

$sku[],一个数组和

最后一行到

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

答案 3 :(得分:0)

试试这个: -

<?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;
   ?>

答案 4 :(得分:0)

尝试使用以下代码,使用implode将数组值以逗号分隔。

<?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." ";
 ?>
相关问题