遍历数组
我有一个数组,它按项目类型对不同的项目进行分组。我正在按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);