我有这个数组
[
[[222] => 1 [333] => 2 [444] => 0],
[[222] => 0 [333] => 2 [444] => 1],
[[222] => 1 [333] => 2 [444] => 0]
]
其中[222],[333],[444]是学生ID
和0表示不存在
1表示存在
2表示离开
我希望输出将
[ 'student_id' => '222'
'present' => 2 /* total present*/
'absent' => 1 /* total absent*/
'leave' => 0 /* total leave*/
],
[ 'student_id' => '333'
'present' => 0 /* total present*/
'absent' => 0 /* total absent*/
'leave' => 3 /* total leave*/
],
等
请给我一些php代码方面的帮助
答案 0 :(得分:2)
这确实可以满足您的要求,但是此站点不是编码服务,因此我真的认为您应该花时间了解我的工作方式,然后下次尝试在您的帖子中分享它:
$array = [
[
"222" => 1,
"333" => 2,
"444" => 0
],
[
"222" => 0,
"333" => 2,
"444" => 1
],
[
"222" => 1,
"333" => 2,
"444" => 0
]
];
$results = [];
foreach($array as $k=>$v){
foreach($v as $id=>$value){
if(!isset($results[$id])){
$results[$id] = [
'student_id' => $id,
'present' => 0,
'absent' => 0,
'leave' => 0
];
}
if($value == 0){
$results[$id]['absent']++;
}
if($value == 1){
$results[$id]['present']++;
}
if($value == 2){
$results[$id]['leave']++;
}
}
}
$results = array_values($results);
print_r($results);
答案 1 :(得分:0)
这看起来像JSON
值,并带有相应的键。您可以首先这样做,可以使用foreach
在PHP ARRAY中排列这些值,然后在JSON中转换该数组。
foreach
循环是从数组访问每个键/值对的最佳方法。
foreach($featured as $key => $value){...}
foreach循环中的$key => $value
引用关联数组中的键/值对,其中键用作确定值的索引,而不是像0,1,2,...这样的数字。 PHP,关联数组看起来像这样
$featured = array('student_id' => '111', 'present' => '2', etc.);