PHP 为 foreach 添加更多值,以便按供应商显示组

标签 php mysql

如何为该代码添加更多值(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/

相关文章:

php - 我应该使用JOIN函数还是在循环结构中运行多个查询?

mysql - MySQL的使用方法及统计排名

php - 当我键入时从 MySQL 填充多个输入字段

php - Zend Framework 2 : How to place a redirect into a module, 在应用程序到达 Controller 之前

Mysql 查询 Max 不工作

python - 为什么 subprocess.Popen 不等到子进程终止?

PHP 函数数组默认值?

php - 如何设置图文某些部分的颜色?

php - 在数据库中插入新数据时警告用户

mysql - 将文本文件中的数据加载到数据库中的表中