我有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;
}
您之前如何完成类似的功能?我应该在哪里修理?
谢谢。
答案 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)