2014-10-30 112 views
1

我有两个数组,一个是“OperID”,另一个是“OperSums”。所述OperID数组包含ID号,并且OperSums数组包含的ID附加到总它看起来像这样:从一个关联数组中显示值,其中的键存在另一个数组中的值

阵列1(OperID)

{[0] => oper1 [1] => oper2 [2] => 3 [3] => oper4 [4] => oper5 [5] => oper6 [6] => oper7 [7] => oper8 [8] => oper9} 

阵列2(OperSums)

{["oper3"]=> float(17498.5) ["oper1"]=> float(10383.5) ["oper2"]=> float(6277) ["oper4"]=> float(10224.67) ["oper6"]=> float(3955.65) ["oper5"]=> float(4997.78) ["oper8"]=> float(11382) ["oper9"]=> float(5072.1) ["oper7"]=> float(14759) ["oper-nb3n0hah-1tueubqo"]=> float(1033.45) ["oper-50f6e4ad-9effbec7"]=> float(3058) ["oper-4f05a90b-03b379f9"]=> float(12112.5) ["oper-4db82d0b-796a3081"]=> float(621) ["oper-qxr9ryex-bsmm0g6f"]=> string(4) "0.00" ["oper-qtgjvw8y-1uqtw058"]=> float(10023) ["oper-487b885e-dbbae536"]=> string(6) "340.00" ["oper-shcuaee2-yldfdxsd"]=> float(467) ["oper-416fd551-da6937eb"]=> float(6563) ["oper-50564d75-f1da98ec"]=> string(4) "0.00" ["oper-l65tf5ex-w5qfinca"]=> float(1746) ["oper-52657816-3d6516e2"]=> float(3495) ["oper-4a82c3be-bccc185d"]=> float(0) ["oper-1f2mnwry-nfywuasi"]=> string(6) "255.95"} 

我只想收集两个数组中的运算符值,并显示数组2中每个浮点数内的每个运算符的总数,并截断所有额外的数据。对于关联数组我真的不怎么样,所以任何指向正确方向的指针或提示都将不胜感激。顺便说一下,这在PHP中。

这是我与迄今使用的代码:OperSums(阵列2)

$operSums = array(); 

$operearnedArray[] = array(
     'amount' => $row['ChargeAmount'], 
     'id' => $row['OperatorID']); 


foreach ($operearnedArray as $value) { 
     if($value['id'] == '' || $value['id'] == null) { 
     continue; 
     } 
     if(array_key_exists($value['id'], $operSums)) { 
     $operSums[$value['id']] += $value['amount']; 
     } else { 
     $operSums[$value['id']] = $value['amount']; 
     } 
} 

回答

0

如果我理解正确的话,你只需要通过一步$如果钥匙$存在显示值OperID(数组1)?

foreach ($OperSums as $id => $value) { 
    if (in_array($id,$OperID)) { 
     echo $id.' => '.$value; 
    } 
} 

如果你确实需要“截断所有额外的数据”,然后取消设置阵列,你去(或创建一个新的数组),虽然似乎有必要不一样,如果你只是显示结果?

+0

我需要截断所有额外的数据,因为我有一个显示结果的图形。我试图看看我是否可以使用你的代码来帮助,但它会抛出以下错误:注意:未定义的变量:OperSums &&警告:为foreach提供的无效参数() – Juan 2014-10-30 22:47:53

+0

显然需要更改变量名称以匹配在你的代码中使用的。您最初将阵列称为“OperID”和“OperSums”,但是,您的代码示例似乎有所不同? – MrWhite 2014-10-30 23:00:31

+0

我想通了,谢谢你!我感谢您的帮助!!!感谢w3d! – Juan 2014-10-30 23:08:02

相关问题