php - 如何根据php中的键添加数组的总和值

标签 php arrays

我有一个像这样的 php 数组

Array
(
    [0] => Array
        (
            [Sr_No] => 1
            [Asan_Category] => Warm-Up
            [Asan_Cat_Val] => 8
            [Asan_Sub_Category] => Ankle
            [Asan_Sub_Cat_Val] => 35
            [Asan_Name] => General Ankle Warm up
            [Asan_Name_Val] => 447
            [Prescribed_Steps] => 40
            [Prescribed_Ratio] => 00
            [Actual_Steps] => 12
            [Actual_Ratio] => 0
        )
 [1] => Array
        (
            [Sr_No] => 2
            [Asan_Category] => Warm-Up
            [Asan_Cat_Val] => 8
            [Asan_Sub_Category] => Knee
            [Asan_Sub_Cat_Val] => 111
            [Asan_Name] => General knee warm up
            [Asan_Name_Val] => 464
            [Prescribed_Steps] => 20
            [Prescribed_Ratio] => 00
            [Actual_Steps] => 14
            [Actual_Ratio] => 0
        )
[2] => Array
        (
            [Sr_No] => 1
            [Asan_Category] => Warm-Up
            [Asan_Cat_Val] => 8
            [Asan_Sub_Category] => Ankle
            [Asan_Sub_Cat_Val] => 35
            [Asan_Name] => General Ankle Warm up
            [Asan_Name_Val] => 447
            [Prescribed_Steps] => 40
            [Prescribed_Ratio] => 00
            [Actual_Steps] => 10
            [Actual_Ratio] => 0
        )
[3] => Array
        (
            [Sr_No] => 2
            [Asan_Category] => Warm-Up
            [Asan_Cat_Val] => 8
            [Asan_Sub_Category] => Knee
            [Asan_Sub_Cat_Val] => 111
            [Asan_Name] => General knee warm up
            [Asan_Name_Val] => 464
            [Prescribed_Steps] => 20
            [Prescribed_Ratio] => 00
            [Actual_Steps] => 9
            [Actual_Ratio] => 0
        )
)

The desired output I want 

Array
(
    [0] => Array
        (
            [Asan_Id] => 447
            [Asan_Category] => Warm-Up
            [Asan_Sub_Category] => Ankle
            [Asan_Name] => General Ankle Warm up
            [Prescribed_Steps] => 40
            [Prescribed_Ratio] => 00
            [Total_Steps] => 22
        )

    [1] => Array
        (
            [Asan_Id] => 464
            [Asan_Category] => Warm-Up
            [Asan_Sub_Category] => Knee
            [Asan_Name] => General knee warm up
            [Prescribed_Steps] => 20
            [Prescribed_Ratio] => 00
            [Total_Steps] => 23
        )
)

我希望那些重复的数据成为一个,但它们不同的实际步长与它们的总和成为总步长。 请帮助我,因为我尝试了一些代码但没有像这样成功

    $asan=[];
    $total_steps=0;
    foreach ($aasan_details as $key) {

        $total_steps += $key['Actual_Steps'];
        if(!in_array($key['Asan_Name_Val'],$asan))
        {
            $asan[] = $key['Asan_Name_Val'];

          $lookup[] = array("Asan_Id"=>$key['Asan_Name_Val'],
                      "Asan_Category"=>$key['Asan_Category'],
                      "Asan_Sub_Category"=>$key['Asan_Sub_Category'],
                      "Asan_Name"=>$key['Asan_Name'],
                      "Prescribed_Steps"=>$key['Prescribed_Steps'],
                      "Prescribed_Ratio"=>$key['Prescribed_Ratio'],
                      'Total_Steps'=>$total_steps);
        }


    }

怎么办啊,求大神帮忙

其中 $aasan_details 是我在上面显示的数组和查找数组我得到了唯一值但没有得到它们的总数

最佳答案

最好的解决方案是将其移入数据库并使用查询为您执行该确切操作。

但是,如果您必须在代码中执行此操作,则可以使用键控数组将它们基本上分组,无论需要匹配多少字段才能将它们连接起来:

例如

foreach ..
$consolidated[$item['Asan_Cat_Val']][$item['Asan_Sub_Cat_Val']][] = $item;

然后做几个嵌套循环来遍历这个并总结所有内容。

关于php - 如何根据php中的键添加数组的总和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58029861/

相关文章:

php - PHP 与 Pylons 的基准测试

php - 需要帮助在 Laravel 的同一函数中使用 all() 和 find()

javascript - 我想展平嵌套的对象数组并将它们转换为一个对象数组

javascript - 对数组范围进行加法和减法

c - 如何在二维字符数组中搜索相同的字段?(在线游戏中的五个)在 C 中

php - 如何将 Laravel 分页与模型关系一起使用?

php - 使用模数排序

php - 如何将两个 foreach 循环合并为一个

c# - 从数组创建列表的效率

javascript - 为什么在为 Javascript 原型(prototype)定义函数时,函数名称会出现在 for 循环中?