php - 使用循环在数组中收集所需数据不起作用
问题描述
我有两个不同的数组,第一个是 types_array,第二个是 result_array。我想根据 types_array 中的类型从 result_array 收集数据并放入新数组中。它只匹配 types_array 中索引的第一条记录,而不匹配其他记录。我在得到结果时直接添加数组,以便您更好地理解。
类型数组
Array
(
[0] => class
[1] => late_fine
[2] => exam_fees
)
结果数组
Array
(
[0] => stdClass Object
(
[unit_name] => class 1
[price] => 10
[type] => class
)
[1] => stdClass Object
(
[unit_name] => class 1
[price] => 10
[type] => class
)
[2] => stdClass Object
(
[unit_name] => late fine
[price] => 50
[type] => late_fine
)
[3] => stdClass Object
(
[unit_name] => late fine
[price] => 40
[type] => late_fine
)
)
结果我得到
Array
(
[class] => Array
(
[name] => class 1
[0] => 10
[1] => 10
[2] => 10
)
)
我期待的结果
Array
(
[class] => Array
(
[name] => class 1
['price'] => 20
)
[late_fine] => Array
(
[name] => late fine
['price'] => 100
)
)
我的代码
$i=0;
$x=0;
$types_array = array_values(student_payment_types());
while($x < count($types_array)){
while($i < count($result_array)){
if( $types_array[$x] == $result_array[$i]->type ){
$data_array[$types_array[$x]]['name'] = $result_array[$i]->unit_name;
$data_array[$types_array[$x]][] += (int)$result_array[$i]->price;
}
$i++;
}
unset($types_array[$x]);
array_values($types);
$x++;
}
解决方案
哦,我想我明白了,我犯了一个愚蠢的错误,当我退出内部循环时,我需要将 $i 设置回零。
推荐阅读
- java - 我们可以使用 rest api 更新 sharepoint 中的文档吗?
- shell - 将文件中的几列grep到shell中的另一个文件
- python - 基于python中的时间戳列连接两个数据帧
- reactjs - 切换多个密码输入的密码可见性
- go - 如何使用 cobra 实现多个选项
- ios - 如何在 iOS Swift 的 avaudioplayer 中播放数据中的音频?
- sql-server - 如何在 IIS 上将事务隔离级别更改为 READ COMMITTED
- c++ - 如何正确地将在类的重载运算符中生成的分配数组传递给该类的另一个实例?
- r - 使用 SQL Server db 作为 R Shiny 应用程序的数据源
- agora.io - Agora:对观众微笑检测。Java、安卓工作室