Возьмите части двух отдельных массивов и объедините их в один - PullRequest
0 голосов
/ 02 июля 2018

У меня есть два массива. Каждый из них состоит из клавиш «дата» и «закрыть».

Пример:

Array1 - Date: 12-Jun-18, Close: "55.6"
Array2 - Date: 12-Jun-18, Close: "1.26"

$stock_one_prices = sw::shared()->prices->getForStockID($id);
$stock_one_prices_array = array();

foreach ($stock_one_prices as $stock_one_price) {
    $stock_one_prices_array [] = [
        "date" => $stock_one_price['date'],
       "close" => $stock_one_price['close']
    ];
}

$stock_two_prices = sw::shared()->prices->getForStockID($idtwo);
$stock_two_prices_array = array();

foreach ($stock_two_prices as $stock_two_price) {
    $stock_two_prices_array [] = [
        "date" => $stock_two_price['date'],
        "close" => $stock_two_price['close']
    ];
}

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

Пример:

Array1 - Date: 12-Jun-18, Close: "55.6"
Array2 - Date: 12-Jun-18, Close: "1.26"

Array1 - Date: 13-Jun-18, Close: "58.6"
Array2 - Date: 13-Jun-18, Close: "2.37"

New Array
----------
Date: 12-Jun-18, CloseOne: "55.6", CloseTwo: "1.26"
Date: 13-Jun-18, CloseOne: "58.6", CloseTwo: "2.37"

Как мне это сделать?

1 Ответ

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

Я видел общий шаблон, который использует date в качестве ключа массива. Это устанавливает индекс, общий для вашего набора данных, чтобы вы могли выполнять назначения по группам.

демо: https://3v4l.org/jRQo0

$array1 = [
    [
        'date' => '12-Jun-18',
        'close' => 55.6,
    ],
    [
        'date' => '13-Jun-18',
        'close' => 58.6,
    ],
];

$array2 = [
    [
        'date' => '12-Jun-18',
        'close' => 1.26,
    ],
    [
        'date' => '13-Jun-18',
        'close' => 2.37,
    ],
];

$all = array_merge($array1, $array2);

foreach ($all as $datapoint) {
    $result[$datapoint['date']] []= $datapoint['close'];
}

print_r($result);
[12-Jun-18] => Array
    (
        [0] => 55.6
        [1] => 1.26
    )

[13-Jun-18] => Array
    (
        [0] => 58.6
        [1] => 2.37
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...