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