繁体   English   中英

如何按阈值价格对样本数组进行分组,样本名称作为子数组键?

How can I group an array of samples by the threshold price with samples name as sub array key?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个产品样本数组,我试图按阈值价格进行分组,其余样本将由样本数组访问。

这就是我想要实现的目标:

[
  {
    "threshold": 20.00,
    "samples": [
      {
        ...
      }
    ]
  },
  {
    "threshold": 100.00,
    "samples": [
      {
        ...
      }
    ]
  }
]

编辑:以及我正在使用的 fetchSamples 数据(在它作为输入输入到 foreach 之前):例如var_dump($sortedProducts)

此代码按预期工作正常。

array (size=7)
  0 => 
    array (size=9)
     "sampleid"=> "1234" (length=4)
     "productid"=> "11111" (length=5)
     "threshold"=> "20.00" (length=5)
     "stock"=> "345" (length=4)
     "product"=> "Beauty sample 1" (length=16)
        
  2 => 
    array (size=9)
     "sampleid"=> "5678" (length=4)
     "productid"=> "22222" (length=5)
     "threshold"=> "20.00" (length=5)
     "stock"=> "2449" (length=4)
     "product"=> "Beauty sample 2" (length=16)
        
   3 =>
    array (size=9)
     "sampleid"=> "999" (length=4)
     "productid"=> "33333" (length=5)
     "threshold"=> "100.00" (length=6)
     "stock"=> "345" (length=4)
     "product"=> "Beauty sample 3" (length=16)

还有我的 PHP 代码,分组发生的地方。 这是在循环中采用 $sortedProducts 并使用 $sortedProducts 输出此修改后的数据的尝试:

  $sortedProducts = array();

        foreach($fetchSamples as $samplekey => $sample)
        {

           $sortedProducts[$sample["threshold"]][] = $sample;
        }
       

然而,当我在 foreach 循环之后转储 $sortedProducts 时,我最接近这个解决方案:(例如dump($sortedProducts) );


Main issue is trying to get the results grouped by the threshold and trying to having it as the fields with an sub array of samples containing threshold identified by same key. 

[
    {
        "20.00": [
            {
                "sampleid": "1234",
                "productid": "111111",
                "threshold": "20.00",
                "stock": "345",
                "product": "Beauty sample 1",
            },
           
            {
                "sampleid": "5678",
                "productid": "222222",
                "threshold": "20.00",
                "stocklevel": "2449",
                "product": "Beauty sample 2",
            }
        ],
        "100.00": [
            {
                "sampleid": "9999",
                "productid": "33333",
                "threshold": "100.00",
                "stock": "345",
                "product": "Beauty sample 3",
            }
        ]
    }
]
1 个回复

是你要找的吗?

示例代码

$arrs = array(
'1' => array(
     "sampleid"=> "1234",
     "productid"=> "11111",
     "threshold"=> "20.00",
     "stock"=> "345",
     "product"=> "Beauty sample 1"
    ),
'2' => array(
    "sampleid"=> "5678",
    "productid"=> "22222",
    "threshold"=> "20.00",
    "stock"=> "2449",
    "product"=> "Beauty sample 2"
    ),
'3' => array(
    "sampleid"=> "999",
    "productid"=> "33333",
    "threshold"=> "100.00",
    "stock"=> "345",
    "product"=> "Beauty sample 3"
    )
);

$data = array();

foreach($arrs as $key => $value){
    $data[$value['threshold']]['threshold'] = $value['threshold'];
        $data[$value['threshold']]['samples'][] = array(
                'productid' => $value['productid'],
                'stock'     => $value['stock']
            );
}

print_r($data);

输出:

Array
(
[20.00] => Array
    (
        [threshold] => 20.00
        [samples] => Array
            (
                [0] => Array
                    (
                        [productid] => 11111
                        [stock] => 345
                    )

                [1] => Array
                    (
                        [productid] => 22222
                        [stock] => 2449
                    )

            )

    )

[100.00] => Array
    (
        [threshold] => 100.00
        [samples] => Array
            (
                [0] => Array
                    (
                        [productid] => 33333
                        [stock] => 345
                    )

            )

    )

)
4 jQuery-获取以输入名称作为键的数组

我需要获取this.form.elements返回的相同类型的数组, this.form.elements使用输入名称作为数组键。 我尝试了this.toArray() ,但是即使它看起来一样,也缺少名称键(键是数字)。 这是全部功能: 将其用作$("input").blah ...

5 如何根据数组内的键对mongo doc进行分组?

我有一个包含这些文件的集合: 请注意,带有sku 2的文档没有重复,但它在数组内的对象中具有键x 。 如何查询按sku分组的文档并获得没有x键但同时也获得不重复但具有x键的sku的文档? 我期望的结果是: 我想忽略一个文档,如果它被密钥sku复制并且有密钥x: false但如果该文 ...

8 数组名作为指针

我了解到数组的名称用作指针。 在 C++ 中,当我创建 integer 类型数组名称“a”时,cout a 打印出数组的地址。 但是当我创建 char 类型数组名 's' 时, cout s 会打印出数组的内容而不是地址。 我想知道为什么会发生这些。 ...

9 jmeter - 如何将线程组名称/样本名称提取到另一个样本中

我需要为我的测试获取一些数据。 我想提取: 线程组名称+样本名称,然后在另一个样本中使用,作为样本名称。 我知道使用 JSR223 我可以得到: 线程名称为: 但是,是否有一些 Jmeter function 可以帮助我实现这一目标,所以我可以在不使用 JSR223 的情况下用于每个采样器? 例如: ...

2020-06-08 19:10:47 1 188   jmeter
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM