gpt4 book ai didi

php - 创建多维数组

转载 作者:行者123 更新时间:2023-11-29 10:59:40 25 4
gpt4 key购买 nike

我在酒店预订系统工作,价格为每晚。我的数据库有两个表,一个称为库存,另一个称为促销。第一行包含一天(365 天)的一行,最后一行仅包含有一定百分比折扣的日期。有时,某些日子有两个或多个不同百分比的折扣。在本例中,1 月 30 日和 31 日分别为 0.10 和 0.15。

表库存

date         | rate
--------------------------
2017-01-29 500
2017-01-30 500
2017-01-31 500

餐 table 促销

date         | percent
--------------------------
2017-01-30 0.10
2017-01-31 0.10
2017-01-30 0.15
2017-01-31 0.15

当 mysql 查询 (SELECT s.date, s.rate, IFNULL(p.percent, 0) FROM stock s LEFT JOIN 促销 p ON s.date = p.date WHERE s.date as date BETWEEN '2017-01-29' AND '2017-01-31') 我得到这个结果:

date         | rate       | percent
-----------------------------------
2017-01-29 500 0
2017-01-30 500 0.10
2017-01-31 500 0.10
2017-01-30 500 0.15
2017-01-31 500 0.15

我需要创建一个多维数组,其中每个折扣百分比包含一个数组,这些数组包含三天,第 29 天的百分比为 0.00,其他两天的百分比为 0.10。 29 天是新的,百分比为 0.00,其他两天为 0.15。我正在尝试,但无法在两个数组中分配第 29 天,如示例中所示。

Array
(
[0.10] => Array
(
[0] => Array
(
[date] => 2017-01-29
[rate]=>500
[percent] => 0.00
)

[1] => Array
(
[date] => 2017-01-30
[rate]=>500
[percent] => 0.10
)

[2] => Array
(
[date] => 2017-01-31
[rate]=>500
[percent] => 0.10
)
)

[0.15] => Array
(
[0] => Array
(
[date] => 2017-01-29
[rate]=>500
[percent] => 0.00
)

[1] => Array
(
[date] => 2017-01-30
[rate]=>500
[percent] => 0.15
)

[2] => Array
(
[date] => 2017-01-31
[rate]=>500
[percent] => 0.15

)
)
)

我对 php 数组有点困惑。我可以使用以下代码按百分比对第一个数组的结果进行分组:

$grouped = array();
foreach ($array_p as $item) {
$grouped[$item['percent']][]= $item;
}

但我只得到这个结果

    Array
(
[0.10] => Array
(
[0] => Array
(
[date] => 2017-01-30
[rate] => 500
[percent] => 0.10
)

[1] => Array
(
[date] => 2017-01-31
[rate] => 500
[percent] => 0.10
)

)

[0.15] => Array
(
[0] => Array
(
[date] => 2017-01-30
[rate] => 500
[porcentaje] => 0.15
)

[1] => Array
(
[date] => 2017-01-31
[rate] => 743.80
[percent] => 0.15
)

)

[0.00] => Array
(
[0] => Array
(
[date] => 2017-01-29
[rate] => 500
[percent] => 0.00
)

)

)

如何在每个数组中插入三天?

最佳答案

试试这个--

              $grouped = array();
$seperate = array();
foreach ($array_p as $item) {
if($item["percent"] == 0) {
$seperate[] = $item;
} else {
$grouped[$item['percent']][]= $item;
}
}
foreach( $grouped as $key => $val ) {
$grouped[$key] = array_merge($val,$seperate);
}
print_R($grouped);

关于php - 创建多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42476873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com