为了账号安全,请及时绑定邮箱和手机立即绑定

如何将一个数组中的元素合并到另一个数组中?

如何将一个数组中的元素合并到另一个数组中?

PHP
元芳怎么了 2023-05-26 17:00:41
我有两个具有以下结构的数组array  'main' => array     'firstYearStudents' => array        0 => '10'        1 => '12'     'secondYearStudents' => array        0 => '8'        1 => '9'  'total' => array     'totalFirstYear' => '22'     'totalSecondYear' => '17'但我想得到以下一个array  'main' => array     'firstYearStudents' => array        0 => '10'        1 => '12'        2 => '22'     'secondYearStudents' => array        0 => '8'        1 => '9'        2 => '17'但我不明白如何将“总”数组中的值附加到“主”数组中的值。你能告诉我应该朝哪个方向移动吗?编辑:如果我有以下键以及上述键怎么办?array  'main' => array     'firstYearStudents' => array        0 => '10'        1 => '12'     'secondYearStudents' => array        0 => '8'        1 => '9'     'programCode' => array        0 => '03.02.01'        1 => '03.01.01'  'total' => array     'totalFirstYear' => '22'     'totalSecondYear' => '17'     'programCode' => '-'那么所需的结构应该是这个样子array  'main' => array     'firstYearStudents' => array        0 => '10'        1 => '12'        2 => '22'     'secondYearStudents' => array        0 => '8'        1 => '9'        2 => '17'     'programCode' => array        0 => '03.02.01'        1 => '03.01.01'        2 => '-'我尝试了以下方法,但我得到了命名的密钥,所以我无法访问这些密钥。$i = 0;foreach ($studentsEditInfo['main'] as $values) {    $studentsEditInfo['main'] = array_merge($values, $studentsEditInfo['total'][$i]);    $i++;}
查看完整描述

2 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

您可以只映射主数组并推送其元素的总和:


$array['main'] = array_map(static function($counts) {

    $sum = ctype_digit(implode('', $counts)) ? array_sum($counts) : '-';


    return array_merge($counts, [$sum]);

}, $array['main']);

密钥的值main将是您实际需要的:


array(2) {

    ["firstYearStudents"]=>

    array(3) {

      [0] => int(10)

      [1] => int(12)

      [2] => int(22)

    }

    ["secondYearStudents"]=>

    array(3) {

      [0] => int(8)

      [1] => int(9)

      [2] => int(17)

    }

    ["programCode"]=>

    array(3) {

      [0] => string(8) "03.02.01"

      [1] => string(8) "03.01.01"

      [2] => string(1) "-"

    }

}


查看完整回答
反对 回复 2023-05-26
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

如果您只需要移动这两个属性,这应该是一个简单的解决方案:


$data = [

    'main' => [

        'firstYearStudents' => [

            '10',

            '12'

        ],

        'secondYearStudents' => [

            '8',

            '9'

        ]

    ],

    'total' => [

        'totalFirstYear' => '22',

        'totalSecondYear' => '17'

    ]

];


$data['main']['firstYearStudents'][] = $data['total']['totalFirstYear'];

$data['main']['secondYearStudents'][] = $data['total']['totalSecondYear'];

如有必要,您应该能够扩展它以涵盖更多年,或者最终编写一个循环来管理您需要的年数。


查看完整回答
反对 回复 2023-05-26
  • 2 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信