<?php
$array = Array (
'0' => Array (
'NDC_Date' => '2017-03-27',
'NDC_Item' => '0',
'NDC_Type' => 'Night',
'NDC_Rate' => '12.00',
'NDC_Taxes' => '0',
'NDC_TaxesName' => '0',
'NDC_Quantity' => '1',
'NDC_Status' => 'NotCharged',
),
'1' => Array (
'NDC_Date' => '2017-03-28',
'NDC_Item' => '0',
'NDC_Type' => 'Night',
'NDC_Rate' => '12.00',
'NDC_Taxes' => '0',
'NDC_TaxesName' => '0',
'NDC_Quantity' => '1',
'NDC_Status' => 'NotCharged',
),
'2' => Array (
'NDC_Date' => '2017-03-29',
'NDC_Item' => '0',
'NDC_Type' => 'Test',
'NDC_Rate' => '12.00',
'NDC_Taxes' => '0',
'NDC_TaxesName' => '0',
'NDC_Quantity' => '1',
'NDC_Status' => 'NotCharged',
),
'3' => Array (
'NDC_Date' => '2017-03-30',
'NDC_Item' => '0',
'NDC_Type' => 'Test',
'NDC_Rate' => '12.00',
'NDC_Taxes' => '0',
'NDC_TaxesName' => '0',
'NDC_Quantity' => '1',
'NDC_Status' => 'NotCharged',
),
'4' => Array (
'NDC_Date' => '2017-03-31',
'NDC_Item' => '0',
'NDC_Type' => 'Night',
'NDC_Rate' => '12.00',
'NDC_Taxes' => '0',
'NDC_TaxesName' => '0',
'NDC_Quantity' => '1',
'NDC_Status' => 'NotCharged',
),
'5' => Array (
'NDC_Date' => '2017-04-01',
'NDC_Item' => '0',
'NDC_Type' => 'Night',
'NDC_Rate' => '12.00',
'NDC_Taxes' => '0',
'NDC_TaxesName' => '0',
'NDC_Quantity' => '1',
'NDC_Status' => 'NotCharged',
),
'6' => Array (
'NDC_Date' => '2017-04-02',
'NDC_Item' => '0',
'NDC_Type' => 'Night',
'NDC_Rate' => '12.00',
'NDC_Taxes' => '0',
'NDC_TaxesName' => '0',
'NDC_Quantity' => '1',
'NDC_Status' => 'NotCharged',
),
'7' => Array (
'NDC_Date' => '2017-04-03',
'NDC_Item' => '0',
'NDC_Type' => 'Night',
'NDC_Rate' => '12.00',
'NDC_Taxes' => '0',
'NDC_TaxesName' => '0',
'NDC_Quantity' => '1',
'NDC_Status' => 'NotCharged',
),
);
foreach ($array as $item) {
$k = $item['NDC_Type'];
if (!isset($result[$k])) {
$result[$k] = $item;
} elseif (
($i = $result[$k]) &&
$item['NDC_Rate'] === $i['NDC_Rate'] &&
$item['NDC_Item'] === $i['NDC_Item'] &&
$item['NDC_Taxes'] === $i['NDC_Taxes'] &&
$item['NDC_TaxesName'] === $i['NDC_TaxesName'] &&
$item['NDC_Quantity'] === $i['NDC_Quantity'] &&
$item['NDC_Status']=== $i['NDC_Status']
) {
$current_dates = explode(',', $result[$k]['NDC_Date']);
$last_date = end($current_dates);
if(date('Y-m-d', strtotime("{$last_date} +1 day")) === $item['NDC_Date']) {
$result[$k]['NDC_Date'] .= ','. $item['NDC_Date'];
} else {
$result[$k. microtime()] = $item;
}
} else {
$result[$k. microtime()] = $item;
}
}
print_r($result);
preferences:
28.5 ms | 402 KiB | 5 Q