我在PHP这样的数组:过滤一个多维数组中的PHP
Array(
0 => Array(
'NDC_Date' => '2017-02-26',
'NDC_Item' => 'Night',
'NDC_Rate' => 108.00,
'NDC_Quantity' => 1,
),
1 => Array(
'NDC_Date' => '2017-02-27',
'NDC_Item' => 'Night',
'NDC_Rate' => 108.00,
'NDC_Quantity' => 1,
),
2 => Array(
'NDC_Date' => '2017-02-28',
'NDC_Item' => 'Night',
'NDC_Rate' => 118.00,
'NDC_Quantity' => 1,
),
3 => Array(
'NDC_Date' => '2017-03-01',
'NDC_Item' => 'Night',
'NDC_Rate' => 108.00,
'NDC_Quantity' => 1,
),
4 => Array(
'NDC_Date' => '2017-01-01',
'NDC_Item' => 'Breakfast',
'NDC_Rate' => 12.00,
'NDC_Quantity' => 2,
),
5 => Array(
'NDC_Date' => '2017-01-01',
'NDC_Item' => 'Extra bed',
'NDC_Rate' => 0.00,
'NDC_Quantity' => 1,
),
6 => Array(
'NDC_Date' => '2017-01-02',
'NDC_Item' => 'Breakfast',
'NDC_Rate' => 12.00,
'NDC_Quantity' => 2,
),
7 => Array(
'NDC_Date' => '2017-01-02',
'NDC_Item' => 'Extra bed',
'NDC_Rate' => 0.00,
'NDC_Quantity' => 1,
),
8 => Array(
'NDC_Date' => '2017-01-03',
'NDC_Item' => 'Breakfast',
'NDC_Rate' => 12.00,
'NDC_Quantity' => 2,
),
9 => Array(
'NDC_Date' => '2017-01-03',
'NDC_Item' => 'Extra bed',
'NDC_Rate' => 0.00,
'NDC_Quantity' => 1,
),
);
我需要合并一些条目only
如果:
日期是
consecutive
。items
和item rates
是一样的。
所需的输出:
Array (
[0] => Array (
[NDC_Date] => 2017-02-26, 2017-02-27
[NDC_Item] => Night
[NDC_Rate] => 108.00
[NDC_Quantity] => 1
)
[1] => Array (
[NDC_Date] => 2017-02-28
[NDC_Item] => Night
[NDC_Rate] => 118.00
[NDC_Quantity] => 1
)
[2] => Array (
[NDC_Date] => 2017-03-01
[NDC_Item] => Night
[NDC_Rate] => 108.00
[NDC_Quantity] => 1
)
[3] => Array (
[NDC_Date] => 2017-01-01, 2017-01-02, 2017-01-03
[NDC_Item] => Breakfast
[NDC_Rate] => 12.00
[NDC_Quantity] => 2
)
[4] => Array (
[NDC_Date] => 2017-01-01, 2017-01-02, 2017-01-03
[NDC_Item] => Extra bed
[NDC_Rate] => 0.00
[NDC_Quantity] => 1
)
)
我有什么实际上是一段代码合并日期时item
和item-price
是相同的:
$result = [];
foreach ($billingDatas as $item) {
$k = $item['NDC_Item'];
if (!isset($result[$k])) {
$result[$k] = $item;
} elseif (($i = $result[$k])
&& $item['NDC_Rate'] == $i['NDC_Rate']
&& $item['NDC_Quantity'] == $i['NDC_Quantity']) {
$result[$k]['NDC_Date'] .= ', '. $item['NDC_Date'];
} else {
$result[$k. time()] = $item;
}
}
$result = array_values($result);
And anot她的一个检查日期是连续的还是不:
$dates = "2017-02-26, 2017-02-27, 2017-03-01";
$dates = explode(',', $dates);
$conseq = array();
$ii = 0;
$max = count($dates);
for($i = 0; $i < count($dates); $i++) {
$conseq[$ii][] = date('Y-m-d',strtotime($dates[$i]));
if($i + 1 < $max) {
$dif = strtotime($dates[$i + 1]) - strtotime($dates[$i]);
if($dif >= 90000) {
$ii++;
}
}
}
print_r($conseq);
但我怎么能合并这两个代码来获得新的阵列?
谢谢。
为什么你删除同一昨天问了,请问今天同一个??? –
因为我现在有了检查连续日期的代码。 –
在这种情况下,你应该是旧的。不重新打开一个。 –