这是我的php三维数组
其中的status也就是状态,有三个等级0,1,2. 现在我想这个状态拆分成三个,分别为status0,status1,status2.他们的值就是对应相同状态的个数。合并成下面这样的一个二维数组
谢谢了,搞了好久没搞出来
这是我的php三维数组
其中的status也就是状态,有三个等级0,1,2. 现在我想这个状态拆分成三个,分别为status0,status1,status2.他们的值就是对应相同状态的个数。合并成下面这样的一个二维数组
谢谢了,搞了好久没搞出来
// 空数组容器
$new_array = [];
foreach( $arr as $arr_key => $arr_val)
{
// 变量容器
$status0 = 0; $status1 = 0; $status2 = 0;
foreach( $arr_val as $_val )
{
$_val['status'] == 0 && ++$status0;
$_val['status'] == 1 && ++$status1;
$_val['status'] == 2 && ++$status2;
}
// 最终输出新数组
$new_array[$arr_key] = [
'field_name' => $_val['field_name'],
'field_id' => $_val['field_id'],
'status0' => $status0,
'status1' => $status1,
'status2' => $status2,
];
}
var_dump($new_array);
坐等楼下补充
借 @pushaowei 改:
$new_array = [];
foreach( $arr as $arr_key => $arr_val)
{
$allStatus = array_column($arr_val);
$statusCounts = array_count_values($allStatus);
// 最终输出新数组
$new_array[$arr_key] = [
'field_name' => $_val['field_name'],
'field_id' => $_val['field_id'],
'status0' => isset($statusCounts['0']) ? $statusCounts['0'] : 0,
'status1' => isset($statusCounts['1']) ? $statusCounts['1'] : 0,
'status2' => isset($statusCounts['2']) ? $statusCounts['2'] : 0,
];
}
var_dump($new_array);
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
如果可以确保数组格式如截图所述,可以用以下代码