对嵌套数组PHP进行分组和计数



我有一个数组,它按项目类型对不同的项目进行分组。我正在按category_id字段对结果进行分组。我想要的是的输出

项目1=3
项目2=2

如果我执行var_dump((,我的数组看起来是这样的

array(2) {
  ["item1"]=>
   array(3) {
    [0]=>
    string(1) "3"
    [2]=>
    string(1) "5"
    [4]=>
    string(1) "7"
  }
  ["item2"]=>
  array(2) {
    [1]=>
    string(1) "4"
    [3]=>
    string(1) "6"
  }
}

这是我正在使用的代码:

            $items = Item::where('order_id','=',$payload["orderId"])->get();
            $itemsGrouped = [];
            $count = 0;
            foreach($items as $item){
                $itemsGrouped[$item->category_id][$count] = $item->id;
                $count++;
            }
           foreach($itemsGrouped as $grp){
               echo key($itemsGrouped).'='.count($grp).'<br>';
           };

这是我目前得到的。计数有效,但$itemsGrouped键无效。它是重复的。

item2=3<br>item2=2<br> 

将代码更改为以下

foreach($itemsGrouped as $key => $grp){
     echo $key.'='.count($grp).'<br>';
};

为了使用key((函数,您需要使用下一个/当前函数

遍历数组
       foreach($itemsGrouped as $key => $grp){
           echo $key.'='.count($grp).'<br>';
       };

key()函数返回当前元素的键,该键由数组的内部指针定义。显然,它总是指向最后一个元素。

 $myarray = "Your array";
    $count = array();  // create an empty array
    foreach($myarray as $arr) {  
        foreach($arr as $a) {  
            $key = array_keys($a); 
            $count[$key[0]]++;
        }
    }
    print_r($count);

相关内容

  • 没有找到相关文章

最新更新