首页 > 解决方案 > 将数字除以 2 个多维数组

问题描述

我有 2 组多维数组($profit 和 $sales)。我想将 2 个多维数组中的数字相除以获得保证金百分比(使用此公式:$profit/$sales*100)

$profit= array(
    0 => array(
        "no"=> "1",
        "value"=>"10"
    ), 
    1=> array(
        "no"=> "2",
        "value"=>"15"
    )
);

$sales= array(
    0 => array(
        "no"=> "1",
        "value"=>"100"
    ), 
    1=> array(
        "no"=> "2",
        "value"=>"200"
    )
);

这是预期的输出:

$margin= array(
    0 => array(
        "no"=> "1",
        "value"=>"10"
    ), 
    1=> array(
        "no"=> "2",
        "value"=>"7.5"
    )
);

我已经做了一些搜索,但仍然没有运气,下面是我正在使用的功能,它不起作用:

function ArrayDivide($arrayList = [])
{

    $m = [];
    $no_details = [];
    $i = 0;

    foreach ($arrayList as $arrayItem) {
        foreach ($arrayItem as $subArray) {
            if (isset($no_details[$subArray['x']])) {//if no is exist
                $m[$no_details[$subArray['x']]]['y'] =  $m[$no_details[$subArray['x']]]['y'] /$subArray['y']*100;
            } else {
                $no_details[$subArray['x']] = $i;
                $m[$i] = ["x"=>$subArray['x'], "y"=>"0"];
                $i++;
            }
        }
    }    
    return $m;

}

你以前是怎么做类似功能的?我应该在哪里修?

谢谢。

标签: phpmultidimensional-array

解决方案


像这样的东西?如果我正确理解了你的问题。

function getMargin($profit, $sales){

    $margin = [];

    foreach($profit as $key => $val){

        $no = $val['no'];
        $value = $val['value'];

        if(isset($sales[$key]) && $sales[$key]['no'] == $no){

            $res = ($value/$sales[$key]['value'])*100;

            $margin[$key]['no'] = $no;
            $margin[$key]['val'] = $res;

        }


    }

    return $margin;

}


var_dump(getMargin($profit, $sales));

推荐阅读