Как совместить два массива и значения push? - PullRequest
0 голосов
/ 17 января 2019

У меня есть два разных массива

$dates =  [
  0 => "2019-01-17",
  1 => "2019-01-16",
  2 => "2019-01-15",
  3 => "2019-01-14",
  4 => "2019-01-13",
  5 => "2019-01-12",
  6 => "2019-01-11",
  7 => "2019-01-10"
]

и ниже это динамический, который может отличаться, но давайте рассмотрим пример

$Fresh_Record =  [
    "date" => array:2 [
        0 => "2019-01-10"
        1 => "2019-01-14"
    ]
    "counter" => array:2 [
        0 => 1000.0
        1 => 500.0
    ]
]

Как вы можете видеть выше массив, который имеет дату и counter.Как вы знаете, счетчик 1000.0 предназначен для 2019-01-10 и 500 для 2019-01-14.

Это только доступные записи, но мне нужны записи за последние 7 дней.Поэтому я хочу добавить 0, если нет записей на любую дату.

Я пытаюсь и много пытался достичь, но все же не смог достичь этого.

Первая попытка

$ARR_1 = array();

        foreach($result as $AA){
            $data['counter'][] = 0;
        }

        $MERGE = array_merge($data['counter'],$yAxis_ARR);

        $MAIN = [
            'date' => $d,
            'counter' => $MERGE 
        ];

Другие попытки

$index = 0;
foreach($d as $single){

    if(!in_array($single,$Fresh_Record['date'])){
        if(count($Fresh_Record['date']) >= $index){
            $map_array['date'] = $Fresh_Record['date'][$index];
            $map_array['counter'] = 0;
        }
    }

    $index++;
}

Помощь

Мне действительно нужно руководство, чтобы решить это.Пожалуйста, направьте меня, пожалуйста.Большое спасибо.

Я хочу сделать, как показано ниже

$map_array =  [
        "date" => [
          0 => "2019-01-17",
          1 => "2019-01-16",
          2 => "2019-01-15",
          3 => "2019-01-14",
          4 => "2019-01-13",
          5 => "2019-01-12",
          6 => "2019-01-11""
        ]
        "counter" => [
            0 => 1000.0,
            1 => 500.0,
            2 => 0,
            3 => 0,
            4 => 0,
            5 => 0,
            6 => 0
        ]
    ]

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Ниже должен работать фрагмент

<?php
$dates =  [
    0 => "2019-01-17",
    1 => "2019-01-16",
    2 => "2019-01-15",
    3 => "2019-01-14",
    4 => "2019-01-13",
    5 => "2019-01-12",
    6 => "2019-01-11",
    7 => "2019-01-10"
];

$Fresh_Record =  [
    "date" => [
        0 => "2019-01-10",
        1 => "2019-01-14"
    ],
    "counter" => [
        0 => 1000.0,
        1 => 500.0
    ]
];

$arrayMap = [
    'date' => [],
    'counter' => []
];

foreach($dates as $index => $date){
    $count = 0;
    $foundIndex = array_search($date, $Fresh_Record['date']);

    if ($foundIndex !== false) {
        $count = $Fresh_Record['counter'][$foundIndex];
    }
    $arrayMap['date'][$index] = $date;
    $arrayMap['counter'][$index] = $count;
}

var_dump($arrayMap);
0 голосов
/ 17 января 2019

Вы можете использовать array_search , чтобы проверить, существует ли индекс на дату, и использовать этот же индекс для счетчика в Fresh_Record:

<?php
$dates =  [
  0 => "2019-01-17",
  1 => "2019-01-16",
  2 => "2019-01-15",
  3 => "2019-01-14",
  4 => "2019-01-13",
  5 => "2019-01-12",
  6 => "2019-01-11",
  7 => "2019-01-10"
];

$Fresh_Record =  [
    "date" =>  [
        0 => "2019-01-10",
        1 => "2019-01-14"
    ],
    "counter" =>  [
        0 => 1000.0,
        1 => 500.0
    ]
];

foreach($dates as $date){
    $map_array['date'][] = $date;
    $index = array_search($date, $Fresh_Record['date']);
    if($index !== false){
        $map_array['counter'][] = $Fresh_Record['counter'][$index];
    } else {
        $map_array['counter'][] = 0;
    }
}

print_r($map_array);

Будет выводить:

Array
(
    [date] => Array
        (
            [0] => 2019-01-17
            [1] => 2019-01-16
            [2] => 2019-01-15
            [3] => 2019-01-14
            [4] => 2019-01-13
            [5] => 2019-01-12
            [6] => 2019-01-11
            [7] => 2019-01-10
        )

    [counter] => Array
        (
            [0] => 0
            [1] => 0
            [2] => 0
            [3] => 500
            [4] => 0
            [5] => 0
            [6] => 0
            [7] => 1000
        )

)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...