2017-02-16 30 views
-4

我从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 
         ) 

       ) 

一些试验后和错误我自己,我觉得foreloop会好,因为它可以遍历每个数组并输出数组中的所选键,但是我仍然不确定如何执行此操作,有什么建议?

+3

..你的问题是? – Ankh

+0

[看怎么问](http://stackoverflow.com/help/how-to-ask) –

+0

很多'if's和'isset's。 – solarc

回答

0

我的建议是类似这样的回答:https://stackoverflow.com/a/42708457/2943403 不幸的是,我不能没有相关的输入数组相关样品和所需的输出数组提供更详细的信息。

// $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 
    } 
}