PHP 对象数组的筛选和判断?

已知对象$r如下:
[0] => stdClass Object
(
[xingming] => zhangshan
[banji] => 2
[yuwen] => 90
[shuxue => 87
[yingyu] => 92

)

[0] => stdClass Object
(
[xingming] => lisi
[banji] => 1
[yuwen] => 91
[shuxue => 86
[yingyu] => 93

)

[2] => stdClass Object
(
[xingming] => wangwu
[banji] => 1
[yuwen] => 92
[shuxue => 85
[yingyu] => 94

)

1、想将其转换为数组(认为数组应该好计算)。2、目的是(1、如果班级banji为1,求语文总成绩,班级为2,求数学总成绩。2、有一个姓名为$x是否在banji1)
不知表达是否清楚?如果转化数组实现不了,只要能达到目的就行。

手打不易,有用请采纳。

$rArray = json_decode(json_encode($r),true);//通过json将对象转换为数组。
foreach($rArray as $k => $v){
if($v['banji']==1){ //如果banji=1则求语文成绩
echo "语文成绩={$v['yuwen']}";
}elseif($v['banji']==2){ //如果banji=2则求数学成绩
echo "语文成绩={$v['shuxue']}";
}
if($v['xingming']=='x'){ //有一个姓名为$x是否在banji1
if($v['banji']==1){
echo "xingmign为x的是班级1";
}else{
echo "xingmign为x的不是班级1";
}
}
}追问

echo "语文成绩={$v['yuwen']}"; 这个不是求和,是依次输出符合条件的$v,麻烦你给修改一下吧。我也是刚接触php,谅解

追答

是求所有的语文成绩和,还是同一个班的语文成绩和?

追问

2、目的是(1、如果班级banji为1,求语文总成绩,班级为2,求数学总成绩。

追答

$rArray = json_decode(json_encode($r),true);//通过json将对象转换为数组。

$yuwen=$shuxue=0;
foreach($rArray as $k => $v){
$yuwen+=$v['yuwen'];
$shuxue+=$v['shuxue'];
}

foreach($rArray as $k => $v){
if($v['banji']==1){ //如果banji=1则求语文成绩
echo "语文成绩={$yuwen}";
}elseif($v['banji']==2){ //如果banji=2则求数学成绩
echo "语文成绩={$shuxue}";
}
if($v['xingming']=='x'){ //有一个姓名为$x是否在banji1
if($v['banji']==1){
echo "xingmign为x的是班级1";
}else{
echo "xingmign为x的不是班级1";
}
}
}

温馨提示:答案为网友推荐,仅供参考
相似回答