Разделите числа в 2 многомерных массива - PullRequest
0 голосов
/ 03 июля 2018

У меня есть 2 набора многомерного массива ($ profit & $ sales). Я хочу разделить числа в 2 многомерных массива, чтобы получить% маржи (используя эту формулу: $ прибыль / $ продажи * 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 голосов
/ 03 июля 2018

Используйте код "Sourcey86" и замените:

$res = $value / $no;

до

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

(мне не хватает очков, чтобы добавить комментарий к его сообщению: D)

0 голосов
/ 03 июля 2018

Как то так? Если я правильно понял ваш вопрос.

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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...