您好我想将一个对象添加到一个数组
正如你在下面看到的,我运行一个数组并根据我制作的最后一个字符并切换大小写,然后我想构建一个新数组并将secon最后一个字符添加到这个新数组中,所以我可以将mannage总结为新数组并打印或回显总和。
foreach ($answer as $value) {
$last=substr($value,-1);
$score=substr($value,-2,1);
switch($last){
case a:
$a=array();
array_push($a,$score);
break;
case b:
$b=array();
array_push($b,$score);
break;
}
}
在我的html表中,我这样做:
echo array_sum($a)
如果我添加一个像array_push($ a,'2')这样的数字,我可以使它工作; 但是对象只会覆盖第一个。我在这做错了什么?
答案 0 :(得分:4)
您每次通过时都会清除阵列。在foreach循环之前定义它们:
$a = array();
$b = array();
foreach ($answer as $value) {
$last=substr($value,-1);
$score=substr($value,-2,1);
switch($last){
case a:
array_push($a,$score);
break;
case b:
array_push($b,$score);
break;
}
}
答案 1 :(得分:0)
每次case
个语句中的一个匹配时,您就会创建一个新数组,这意味着您每次都会从头开始丢弃所有以前匹配的语句。移动$a = array()
和$b = array()
OUTSIDE循环,因此数组只创建一次:
$a = array();
$b = array();
foreach (...) {
....
}
应解决问题