如何为该代码添加更多值(value)以供显示?
例如:我向购物车添加了 5 种不同供应商的产品。
P1 from vendor name TEST1
P2 and P3 from vendor name TEST2
P4 from vendor name TEST3
P5 from vendor name TEST4
我的代码:
function getVendors()
{
foreach($_SESSION["products"] as $product) {
$org[$product["member_display_name"]][] = $product["p_name"];
}
return (!empty($org)) ? $org : array();
}
foreach (getVendors() as $vendor => $prods) {
echo "<li>Vendor Name : {$vendor} </li>";
echo "<li>" . implode("</li><li>",$prods) . "</li>";
}
此代码给出的输出如下:
Vendor Name : TEST1
P1
Vendor Name : TEST2
P2
P3
Vendor Name : TEST3
P4
Vendor Name : TEST4
P5
这就是我想要的
我想添加 $product["member_ payment"]
进行如下显示:
Vendor Name : TEST1
P1
Payment to Vendor : 000-111-111
Vendor Name : TEST2
P2
P3
Payment to Vendor : 000-111-222
Vendor Name : TEST3
P4
Payment to Vendor : 000-111-333
Vendor Name : TEST4
P5
Payment to Vendor : 000-111-444
最佳答案
恕我直言,您需要稍微重组一下数组。在 $org 中添加一对额外的键,以便您可以从迭代器访问它
function getVendors() {
foreach($_SESSION["products"] as $product) {
$org[$product["member_display_name"]]['product'][] = $product["p_name"];
}
$org[$product["member_display_name"]]['payment'] = $product["p_payment"]; //where $product['p_payment'] is a string like '000-111-222'
return (!empty($org))? $org : array();
}
foreach(getVendors() as $vendor => $prods) {
echo "<li>Vendor Name : {$vendor} </li>";
if (isset($prods['product'])) echo "<li>".implode("</li><li>",$prods['product'])."</li>";
if (isset($prods['payment'])) echo "<li>Payment to Vendor : ".$prods['payment']."</li>";
}
我正在头顶上方回答和打字。希望您能了解总体思路。
关于PHP 为 foreach 添加更多值,以便按供应商显示组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34823603/