【问题标题】:Three Dimensional Array Changing三维阵列变化
【发布时间】:2017-02-16 16:39:17
【问题描述】:

我正在从 API 调用一个三维数组,但是在对 API 进行不同调用后,返回的数据略有不同,有时数组键会发生变化。例如,第一个数组在一种情况下可能与类型一有关,而在另一种情况下它与类型二有关。布局是这样的

Array
(
    [id] => 
    [stats] => Array
        (
            [0] => Array
                (
                    [type] => 
                    [option] => 
                    [modifyDate] => 

如前所述,有时它与不同的类型有关,有没有一种方法可以根据其中的内容获取数组,例如,如果第一个数组中的“类型”等于类型一,则将其分配给变量 Type1 ?

也许在一个更好的例子中,在场景 1 中它显示了这一点:

Array
(
    [summonerId] => 39562006
    [playerStatSummaries] => Array
        (
            [0] => Array
                (
                    [playerStatSummaryType] => AramUnranked5x5
                    [wins] => 4
                    [modifyDate] => 1481110651000
                    [aggregatedStats] => Array
                        (
                            [totalChampionKills] => 48
                            [totalTurretsKilled] => 2
                            [totalAssists] => 171
                        )

                )

而在场景 2 中显示了这一点

Array
(
    [summonerId] => 34951469
    [playerStatSummaries] => Array
        (
            [0] => Array
                (
                    [playerStatSummaryType] => CAP5x5
                    [wins] => 16
                    [modifyDate] => 1481117277000
                    [aggregatedStats] => Array
                        (
                            [totalChampionKills] => 325
                            [totalMinionKills] => 1996
                            [totalTurretsKilled] => 26
                            [totalNeutralMinionsKilled] => 1048
                            [totalAssists] => 298
                        )

                )

我自己经过一些试验和错误后,我认为前循环会很好,因为它可以迭代每个数组并从数组中输出选择的键但是我仍然不确定如何做到这一点,有什么建议吗?

【问题讨论】:

标签: php arrays


【解决方案1】:

我的建议类似于这个答案:https://stackoverflow.com/a/42708457/2943403 不幸的是,如果没有相关输入数组的 small 相关样本和所需的输出数组,我无法提供更详细的信息。

// $new=array(...);
// $old=array(...);
foreach($new as $new_key=>$new_subarray){
    foreach(array_diff_key($old,range(0,$new_key)) as $old_subarray){  // no dupe loops
        // perform checks between $new_subarray and $old_subarray
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 2019-04-17
    • 2010-11-26
    • 2017-03-04
    • 2014-06-12
    相关资源
    最近更新 更多