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

PHP像基于重复密钥的数组一样组合VALUE而不仅仅是密钥本身

徐高懿
2023-03-14

我有一个如下所示的数组(这是一个$data变量的打印)

Array
(
    [0] => Array
        (
            [quan] => 1
            [prod_key] => 6f2e8858b8333afaeec8cd51be30ba6a
            [title] => Broomhandle - 6" x 12.5"
            [total] => 11.00
            [weight] => 0.25
            [image] => thumb_37658989fcd29e9.jpg
        )

    [1] => Array
        (
            [quan] => 1
            [prod_key] => 6f2e8858b8333afaeec8cd51be30ba6a
            [title] => Broomhandle - 6" x 12.5"
            [total] => 11.00
            [weight] => 0.25
            [image] => thumb_37658989fcd29e9.jpg
        )
    [2] => Array
        (
            [quan] => 1
            [prod_key] => of2ef85vb8333afaeec8cd51be30jq7i
            [title] => Watch
            [total] => 65.00
            [weight] => 0.15
            [image] => thumb_37658989fcd29e9.jpg
        )
)

我想做的是在数组中循环,将具有相同prod_键的项目组合成一个项目,并更新总数、数量和重量,这样上面的示例应该如下所示:

Array
(
    [0] => Array
        (
            [quan] => 2
            [prod_key] => 6f2e8858b8333afaeec8cd51be30ba6a
            [title] => Broomhandle - 6" x 12.5"
            [total] => 22.00
            [weight] => 0.50
            [image] => thumb_37658989fcd29e9.jpg
        )
    [1] => Array
        (
            [quan] => 1
            [prod_key] => of2ef85vb8333afaeec8cd51be30jq7i
            [title] => Watch
            [total] => 65.00
            [weight] => 0.15
            [image] => thumb_37658989fcd29e9.jpg
        )
)

共有1个答案

路和悌
2023-03-14

创建一个新数组,并将产品密钥用作数组指示符。然后您可以轻松添加或更新条目

$result = array();
foreach ($data as $v) {
    if (!isset($result[$v['prod_key']])) {
        $result[$v['prod_key']] = $v;
    } else {
    $result[$v['prod_key']]['quan'] += $v['quan'];
    $result[$v['prod_key']]['total'] += $v['total'];
    $result[$v['prod_key']]['weight'] += $v['weight'];
        //etc...
    }
}
 类似资料:
  • 这是我的密码 抱歉,如果我的代码一团糟。

  • 问题内容: 我刚刚开始使用MongoDb,我注意到我有很多重复的记录,这些记录本来就是唯一的。我想知道如何对数据使用组合键,并且正在寻找有关如何创建它们的信息。最后,我使用Java来访问mongo和morphia作为我的ORM层,因此将您的答案中的内容包括在内是非常棒的。 Morphia:http : //code.google.com/p/morphia/ 问题答案: 您也可以将对象用于_id字

  • 问题内容: 我的localStorage中有这个: 如何只删除何时需要整个密钥? 我使用此方法来更新数组中的特定值:http : //jsfiddle.net/Qmm9g/,因此使用与我想删除特定数组相同的方法。 请注意,已经有一个要删除的按钮。该按钮我想要一个函数,该函数将删除整个数组() 问题答案: 像这样的事情会起作用,但是我不确定这是否是 最好的 方法。有一种更好的本地存储特定方式-

  • 问题内容: 我在寻找一种不涉及引入一个额外的“通用”字段的溶液等,等这将是该变种领域的占位符。 我有一个JSON规范,它描述了几个大型结构,这些结构主要包含简单的值,但偶尔也有一个结构本身的值,其动态类型取决于某个字段的值。 例如,这两个JSON文档都应解组到相同的Go结构: 和 JSON结构已设置,我无法更改。 Go结构必须如下所示: 问题是如何实际执行操作以及该类型应为哪种类型。 我首先使其成

  • 问题内容: 我需要设置一个在Jersey- Client应用程序中使用。我要做的就是接受自定义根ca证书的上下文。真的没有办法生成密钥库文件和导入CA证书吗? 问题答案: 真的没有办法生成密钥库文件和导入CA证书吗? 有一些方法可以在没有密钥库文件的情况下执行此操作,但是由于必须加载要信任的CA证书,因此必须以某种方式加载文件或资源。 (您当然也可以实现自己的实现,使所有调用都使用Certific

  • 我正在使用OpenSSL RSA API用服务器的公钥加密数据。 我使用的是,所以RSA应该可以轻松地用256字节的公钥加密255字节。但我收到了: 我改变dl(data_lenght)到256(只有1),我得到了这个: 我知道RSA可以用256个密钥编码255个字节。有什么问题吗?