Введите значения в многомерный массив в php - PullRequest
1 голос
/ 25 апреля 2020

Я пытаюсь создать один многомерный массив из 2 массивов динамически путем зацикливания обоих массивов.

Код

<?php
$days = ["Monday","Tuesday","Wednesday"];
$rates = [40,60,80];
$profit = [];

foreach($days as $day => $value){
    foreach($rates as $rate){
    $netprofit = $rate* 20;
     $profit[$value] = [$rate=> $netprofit];
    }


}
print_r($profit);

Результат

Array
(
    [Monday] => Array
        (
            [80] => 1600
        )

    [Tuesday] => Array
        (
            [80] => 1600
        )

    [Wednesday] => Array
        (
            [80] => 1600
        )

)

Ожидаемый результат

Array
(
    [Monday] => Array
        (
            [40] => 800
            [60] => 1200
            [80] => 1600
        )

    [Tuesday] => Array
        (
            [40] => 800
            [60] => 1200
            [80] => 1600
        )

    [Wednesday] => Array
        (
            [40] => 800
            [60] => 1200
            [80] => 1600
        )

)

Я хочу l oop массива $ days и использовать его в качестве ключа для первого измерения нового массива $ profit. Во-вторых, я хочу присвоить значения массива $ rate в качестве ключа для второго измерения и назначить значение. Я попробовал этот подход, но не нашел ожидаемого результата.

Ответы [ 2 ]

1 голос
/ 25 апреля 2020

Вы должны вкладывать свою прибыль:

foreach($days as $day){
    $profit[$day] = [];
    foreach($rates as $rate) {
        $netprofit = $rate * 20;
        $profit[$day][$rate] = $netprofit;
    }
}
1 голос
/ 25 апреля 2020

попробуйте это:

 $days = ["Monday","Tuesday","Wednesday"];
    $rates = [40,60,80];
    $profit = [];

    foreach($days as $day => $value){
      $x = array();
    foreach($rates as $rate){
      $x[$rate] =  $rate* 20;

    }
    $profit[$value] = $x;

    }
    print_r($profit);
...