显示一个关联数组的值,该关联数组的键作为另一个数组中的值存在

时间:2014-10-30 22:12:11

标签: php arrays associative-array

我有两个数组,一个是“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 = 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'];
      }
}

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你只需要单步执行$ OperSums(数组2)并显示值,如果该键存在于$ OperID(数组1)中?

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

如果你真的需要“截断所有额外的数据”,那么在你去的时候取消设置数组(或创建一个新数组),虽然如果你只是显示结果似乎没有必要?