【问题标题】:Take parts of two separate arrays and combine them into one取两个独立数组的一部分并将它们组合成一个
【发布时间】:2018-07-01 22:16:31
【问题描述】:

我有两个数组。它们中的每一个都由“日期”和“关闭”键组成。

例子:

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"

我怎样才能做到这一点?

【问题讨论】:

    标签: php arrays multidimensional-array


    【解决方案1】:

    我见过一种使用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
        )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多