当前位置: 首页 > 知识库问答 >
问题:

嵌套的 foreach 循环

杨晟
2023-03-14

我有一个这样的数组

$foreacharray = array(
    "model" => array ("samsung", "sony", "philips", "acer", "hp"),
    "qty" => array("3", "7", "5", "1", "8"),
);

我想做的是前面的模型,为其数量绘制徽标,因此三星=3,索尼=7,以此类推,将绘制3个索尼徽标和7个三星徽标。

我想出了这样的办法

foreach ($foreacharray["model"] as $model)
{
    foreach($foreacharray["qty"] as $qty)
    {
        echo $model;
        echo '<br>';
    }
}

但是当然,所有这些都是为了每个数组条目,呼应出名称,所以我最终打印了5个三星,打印了5个索尼,等等。

如何使其使用 qty 数组的值而不是条目数?

共有3个答案

翟修永
2023-03-14

假设模型是唯一的,您可以使用array_combine将模型用作键,将数量用作值:

$combined = array_combine($foreacharray['model'], $foreacharray['qty']);

foreach($combined as $model => $qty) {
    # …
}
夏炎彬
2023-03-14

如果您首先控制数组生成,那么最好只生成一个数组,以模型为键,以数量为值,而不是生成 2 个单独的数组。

法烨烨
2023-03-14

为什么不使用函数< code>array_combine来简化这个过程呢?

http://www.php.net/manual/en/function.array-combine.php

示例;

$newArray = array_combine($foreacharray[0], $foreacharray[1]);
var_dump($newArray);
// will output
array (
     "samsung" => 3,
     "sony" => 7,
     "philips" => 5,
     "acer" => 1, 
     "hp" => 8,
)

然后,您可以轻松获取所有值或像这样显示它们...

foreach($newArray as $key => $val) {
    echo $key . ' has a quantity of ' . $val . '.';
}

希望这能使它更容易。

 类似资料:
  • 这是我的代码。我遇到的问题是,我希望将HP在我的PHP代码中的数字转换为我的HP HTML代码,以及与Cylinder相同的内容。我已经想好了其他的东西,但说到这一部分我就卡住了

  • 我的代码有一个问题,它有两个嵌套的foreach循环: 所以我在“消息”中有2个条目,在“评论”中有4个条目,第一个条目为“消息”,第二个条目为2。我想要: 消息1-评论1-评论2 消息2-注释3-注释4 这就是我所拥有的: 消息1-评论1-评论2 消息2-注释1-注释2-注释3-注释4 我搜索了两个小时,在mysqli中没有找到解决方案:((当我找到时 mysqli_data_seek($com

  • 我正在寻找一种用函数式编程方法替换嵌套foreach循环的方法。情况是这样的: 目前我的代码是这样的: 这将生成如下所示的输出: 有谁知道如何用函数式编程替代方案替换foreach代码块?

  • 数据库表: 胶片(id\U胶片主键,名称) 流派(id_genrePK,名称) film_genre(id_filmFK,id_genreFK) 这将输出流派表中的所有流派: 这将输出特定电影的电影类型表中的所有选定类型: 我有一个问题,从数据库输出数据到多个选定的列表中的形式。这是一个电影数据库,我正在进行Foreach迭代,以读取电影流派的所有行,并输出到多个选择字段。但是我在向列表输出“选定

  • 我有以下表格: 类别:category_id,category_name 产品:标识、类别标识、产品名称 我使用的是Bootstrap4,我想将每个类别显示为手风琴标题,并在手风琴主体中列出属于该类别的所有产品。 使用PHP7 数据库数据:

  • 在我的Laravel5.4项目中,我试图从模型文章和状态之间的关系中获取一些数据。关系类型为OneToMany,其中Article具有一个状态,Status具有多个项目。 为了获取想要的数据,我迭代通过模型文章项目的集合,这些项目是eagerLoade连同模型/关系状态一起借助方法。第一次迭代构建了一个正确的查询,但是在每次迭代中,它都会追加由方法