下面是输出为" 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);
?>
使用数组来处理多个字符串始终是安全的,因为您可以轻松应用任何复杂的逻辑。
同样,如果未找到数据,则上面示例中的数组代码将简单地打印空白而不会导致任何错误。
您应该能够通过以下方式获得所需的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:
然后为每个项目输出该前缀,后跟项目编号。输出第一个后,它将前缀设置为 ,
,以便后续项目前面将带有该逗号。
更改$sku
到 $sku[]
、数组和
最后一行到
echo "SKU:".implode(",",$sku);
试试这个:-
<?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;
?>
尝试使用以下代码,使用 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." ";
?>