将数字除以2的多维数组

时间:2018-07-03 11:30:51

标签: php multidimensional-array

我有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;

}

您之前如何完成类似的功能?我应该在哪里修理?

谢谢。

2 个答案:

答案 0 :(得分:0)

像这样吗?如果我正确理解了您的问题。

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));

答案 1 :(得分:0)

使用“ Sourcey86”代码并替换:

$res = $value / $no;

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

(我的观点不足以在他的帖子中添加评论:D)