如何将不同的数组值与通用键结合在一起

拉胡尔

我有一个像这样的数组:

Array
(
    [0] => Array
        (
            [minutesPlayed] => 0
            [totalSecondsPlayed] => 0
            [flagrantFouls] => 0
            [foulsReceived] => 0
            [blocksReceived] => 0
            [plusMinus] => 0
            [player] => Array
                (
                    [playerId] => 830651
                    [firstName] => Walter
                    [lastName] => Tavares
                    [uniform] => 21
                )

            [fieldGoals] => Array
                (
                    [made] => 0
                    [attempted] => 0
                )

            [freeThrows] => Array
                (
                    [made] => 12
                    [attempted] => 4
                )

            [threePointFieldGoals] => Array
                (
                    [made] => 0
                    [attempted] => 0
                )

        )

    [1] => Array
        (
            [minutesPlayed] => 0
            [totalSecondsPlayed] => 0
            [flagrantFouls] => 0
            [foulsReceived] => 0
            [blocksReceived] => 0
            [plusMinus] => 0
            [player] => Array
                (
                    [playerId] => 830651
                    [firstName] => John
                    [lastName] => Tavares
                    [uniform] => 22
                )

            [fieldGoals] => Array
                (
                    [made] => 0
                    [attempted] => 0
                )

            [freeThrows] => Array
                (
                    [made] => 12
                    [attempted] => 6
                )

            [threePointFieldGoals] => Array
                (
                    [made] => 0
                    [attempted] => 0
                )
        )

    [2] => Array
        (
            [minutesPlayed] => 0
            [totalSecondsPlayed] => 0
            [flagrantFouls] => 0
            [foulsReceived] => 0
            [blocksReceived] => 0
            [plusMinus] => 0
            [player] => Array
                (
                    [playerId] => 830651
                    [firstName] => Adrian
                    [lastName] => Tavares
                    [uniform] => 23
                )

            [fieldGoals] => Array
                (
                    [made] => 0
                    [attempted] => 0
                )

            [freeThrows] => Array
                (
                    [made] => 0
                    [attempted] => 0
                )

            [threePointFieldGoals] => Array
                (
                    [made] => 12
                    [attempted] => 8
                )
        )
    [3] => Array
        (
            [minutesPlayed] => 0
            [totalSecondsPlayed] => 0
            [flagrantFouls] => 0
            [foulsReceived] => 0
            [blocksReceived] => 0
            [plusMinus] => 0
            [player] => Array
                (
                    [playerId] => 830651
                    [firstName] => Adrian
                    [lastName] => Methue
                    [uniform] => 24
                )

            [fieldGoals] => Array
                (
                    [made] => 0
                    [attempted] => 0
                )

            [freeThrows] => Array
                (
                    [made] => 0
                    [attempted] => 0
                )

            [threePointFieldGoals] => Array
                (
                    [made] => 0
                    [attempted] => 0
                )
    )
)

我希望它是这样的:

Array
(
    [fieldGoals] => Array
            [0](
                    [player_name]=>Walter Tavares
                    [playerId] => 830651
                    [made] => 0
                    [attempted] => 0
            )
            [1](
                    [player_name]=>John Tavares
                    [playerId] => 830651
                    [made] => 0
                    [attempted] => 0
            )
            [2](
                    [player_name]=>Adrian Tavares
                    [playerId] => 830651
                    [made] => 0
                    [attempted] => 0
            )
            [3](
                    [player_name]=>Adrian Methue
                    [playerId] => 830651
                    [made] => 0
                    [attempted] => 0
            )
    [freeThrows] => Array
            [0](
                    [player_name]=>Walter Tavares
                    [playerId] => 830651
                    [made] => 12
                    [attempted] => 4
            )
            [1](
                    [player_name]=>John Tavares
                    [playerId] => 830651
                    [made] => 12
                    [attempted] => 6
            )
            [2](
                    [player_name]=>Adrian Tavares
                    [playerId] => 830651
                    [made] => 12
                    [attempted] => 8
            )
            [3](
                    [player_name]=>Adrian Methue
                    [playerId] => 830651
                    [made] => 0
                    [attempted] => 0
            )
    [threePointFieldGoals] => Array
            [0](
                    [player_name]=>Walter Tavares
                    [playerId] => 830651
                    [made] => 0
                    [attempted] => 0
            )
            [1](
                    [player_name]=>John Tavares
                    [playerId] => 830651
                    [made] => 0
                    [attempted] => 0
            )
            [2](
                    [player_name]=>Adrian Tavares
                    [playerId] => 830651
                    [made] => 0
                    [attempted] => 0
            )
            [3](
                    [player_name]=>Adrian Methue
                    [playerId] => 830651
                    [made] => 0
                    [attempted] => 0
            )

)

这是我到目前为止所做的:

foreach($myArr as $playerStatsKey=>$playerStatsArray){
                 if(!is_array($playerStatsArray)){
                     continue;
                }
            foreach($playerStatsArray as $playkey=>$playVal){
                 if(!is_array($playVal)){
                     continue;
                }
                if($playkey=='player'){
                            $playerInfo[$playkey]['made'] = $playVal['made'];
                            $playerInfo[$playkey]['attempted'] = $playVal['attempted'];
                    }
                    $arr[$playkey] = $playerInfo;
                    $arr[$playkey] = $playVal['made'];
                    $arr[$playkey] = $playVal['attempted'];

                }
                echo '<pre>' ;print_r($arr  );   

我只想将不同的数组值与通用键结合在一起,如何实现呢?

Xrissz

给你。此功能将完成您​​的任务:

function combinePlayers( $array ) {
    $return_array = array();
    foreach ( $array as $element ) {
        //collect data for the new player object
        $player = array(
            'player_name' => $element['player']['firstName'] . ' ' . $element['player']['lastName'],
            'playerId'    => $element['player']['playerId']
        );
        foreach ( $element as $key => $value ) {
            if ( is_array( $value ) && $key != 'player' ) {
                //collect the keys to build the structure of the $return_array
                if ( ! array_key_exists( $key, $return_array ) ) {
                    $return_array[ $key ] = array();
                }
                //collect the returning values from the input array
                array_push( $return_array[ $key ], array_merge( $value, $player ) );
            }
        }
    }
    return $return_array;
}

此函数循环遍历输入数组并收集不是玩家信息的数组值。同样在迭代中,它创建一个新的播放器对象,该对象将合并到所有值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将不同形状的np数组组合在一起并按行分开

如何将聚合查询与不同联接结合在一起?

如何将“最终形式计算”与“最终形式数组”结合在一起

将多个数组与 identica 键和不同的值组合在一起

Apache Mahout:将不同的信息结合在一起作为评分

如何将基于键的行与组合在单列中的值组合在一起

在hapi / joi中。如何将两种不同的模式验证结合在一起?

如何将两个不同查询的结果与猫鼬结合在一起?

如何将2张纸与基于单个值的列表结合在一起?

如何将ggplot(具有lon,lat和fill值)与ggmap结合在一起?

如何将typedef的结构与实例创建结合在一起?

如何将原位转换和复制转换结合在一起?

如何将5个以上的PDF与imagemagick转换结合在一起?

如何将数据框总结为与ID结合在一起的列表?

如何将python asyncio与线程结合在一起?

如何将Bash的流程替换与HERE文档结合在一起?

如何将PrettyPrintingJsonGeneratorDecorator和MaskingJsonGeneratorDecorator结合在一起?

如何将EventEmitter与动态组件结合在一起?

如何将back_inserter与转换结合在一起,C ++

如何将Axios调用循环与等待功能结合在一起?

如何将时基轮询与等待的任务结合在一起

如何将分组的输入与对齐的表单结合在一起?

如何将自举轮播与侧边栏菜单结合在一起?

如何将文字信息与系统信息结合在一起?

如何将RequireJS路径和require-css结合在一起?

如何将输入与字符串结合在一起?

如何将.toggleClass()与.appendTo()结合在一起?

如何将这两个查询结合在一起?(MySQL)

如何将列与R中的条件结合在一起?