2 回答
TA贡献1111条经验 获得超0个赞
从原来的两个数组中,只需重新索引month并递归合并它们:
$result = array_merge_recursive(array_column($array1, null, 'month'),
array_column($array2, null, 'month'));
其产量:
Array
(
[November] => Array
(
[month] => Array
(
[0] => November
[1] => November
)
[Average Purchase Price] => 2.52
[Total Purchase Gallons] => 84000
[Average Customer Price] => 2.79
[Total Customer Gallons] => 25000
)
[October] => Array
(
[month] => Array
(
[0] => October
[1] => October
)
[Average Purchase Price] => 2.615
[Total Purchase Gallons] => 63000
[Average Customer Price] => 2.905
[Total Customer Gallons] => 5500
)
)
轻松访问一个月内的任何密钥:
echo $result['October']['Average Purchase Price'];
echo $result['October']['Average Customer Price'];
// etc...
或者循环:
foreach($result as $month => $values) {
echo $month;
echo $values['Average Purchase Price'];
echo $values['Average Customer Price'];
// etc...
}
但是,您在两个可以组合的查询中进行了编辑。这可能会起作用,或者会问另一个问题,毫无疑问有人可以给你一个查询:
SELECT month, AVG(price) AS 'Average Purchase Price', SUM(gallons) AS 'Total Purchase Gallons'
FROM purchase_contracts GROUP BY month
UNION ALL
SELECT month, AVG(price) AS 'Average Customer Price', SUM(gallons) AS 'Total Customer Gallons'
FROM customer_contracts GROUP BY month
TA贡献1836条经验 获得超5个赞
这很简单的迭代:
<?php
$oldArr = [
['month' => 'November', 'Average Purchase Price' => 2.52, 'Total Purchase Gallons' => 84000],
['month' => 'October', 'Average Purchase Price' => 2.615, 'Total Purchase Gallons' => 63000],
['month' => 'November', 'Average Customer Price' => 2.79, 'Total Customer Gallons' => 25000],
['month' => 'October', 'Average Customer Price' => 2.9050000000000002, 'Total Customer Gallons' => 5500]
];
$newArr = [];
foreach ($oldArr as $item) {
$month = $item['month'];
if (!array_key_exists($month, $newArr)) {
$newArr[$month] = $item;
}
}
echo '<pre>';
print_r($newArr);
- 2 回答
- 0 关注
- 96 浏览
添加回答
举报