I need to sort a array on some condition.
Array
(
    [0] => Array
        (
            [entity_id] => 10
            [product_id] => 424
            [city] => 18
            [sort_order] => 10
            [deal_type_id] => dow
            [deal_from_date] => 2010-12-18
            [deal_to_date] => 2026-02-19
        )
    [1] => Array
        (
            [entity_id] => 11
            [product_id] => 423
            [city] => 18
            [sort_order] => 11
            [deal_type_id] => dow
            [deal_from_date] => 2010-12-18
            [deal_to_date] => 2027-02-19
        )
    [2] => Array
        (
            [entity_id] => 12
            [product_id] => 422
            [city] => 18
            [sort_order] => 12
            [deal_type_id] => dow
            [deal_from_date] => 2011-12-18
            [deal_to_date] => 2030-01-19
        )
    [3] => Array
        (
            [entity_id] => 13
            [product_id] => 420
            [city] => 18
            [sort_order] => 13
            [deal_type_id] => dow
            [deal_from_date] => 2011-12-18
            [deal_to_date] => 2030-01-19
        )
    [4] => Array
        (
            [entity_id] => 1
            [product_id] => 463
            [city] => 18
            [sort_order] => 1
            [deal_type_id] => dod
            [deal_from_date] => 2013-12-18
            [deal_to_date] => 2025-01-19
        )
    [5] => Array
        (
            [entity_id] => 2
            [product_id] => 452
            [city] => 18
            [sort_order] => 2
            [deal_type_id] => dom
            [deal_from_date] => 2013-12-18
            [deal_to_date] => 2026-01-19
        )
    [6] => Array
        (
            [entity_id] => 3
            [product_id] => 448
            [city] => 18
            [sort_order] => 3
            [deal_type_id] => dod
            [deal_from_date] => 2013-12-18
            [deal_to_date] => 2027-01-19
        )
    [7] => Array
        (
            [entity_id] => 4
            [product_id] => 441
            [city] => 18
            [sort_order] => 4
            [deal_type_id] => dod
            [deal_from_date] => 2013-12-18
            [deal_to_date] => 2024-01-19
        )
    [8] => Array
        (
            [entity_id] => 5
            [product_id] => 440
            [city] => 18
            [sort_order] => 5
            [deal_type_id] => dod
            [deal_from_date] => 2013-12-18
            [deal_to_date] => 2027-01-19
        )
    [9] => Array
        (
            [entity_id] => 6
            [product_id] => 439
            [city] => 18
            [sort_order] => 6
            [deal_type_id] => dom
            [deal_from_date] => 2013-12-18
            [deal_to_date] => 2028-01-19
        )
    [10] => Array
        (
            [entity_id] => 7
            [product_id] => 433
            [city] => 18
            [sort_order] => 7
            [deal_type_id] => dom
            [deal_from_date] => 2013-12-18
            [deal_to_date] => 2013-01-19
        )
    [11] => Array
        (
            [entity_id] => 8
            [product_id] => 427
            [city] => 18
            [sort_order] => 8
            [deal_type_id] => dod
            [deal_from_date] => 2013-12-18
            [deal_to_date] => 2022-01-19
        )
    [12] => Array
        (
            [entity_id] => 9
            [product_id] => 425
            [city] => 18
            [sort_order] => 9
            [deal_type_id] => dom
            [deal_from_date] => 2013-12-18
            [deal_to_date] => 2025-02-19
        )
)
I need to compare deal_from_date from previous to next key. if both are same then, i need to check grater value in deal_to_date. if i found both deal_to_date value is diffrent then sort as per greater first.
I tried.
for($i=0;$i<count($result);$i++)
{
    if(array_key_exists($i+1, $result))
    {
        if(strtotime($result[$i]['deal_from_date']) == strtotime($result[$i+1]['deal_from_date']))
        {
            echo $i;
            if(strtotime($result[$i]['deal_to_date']) < strtotime($result[$i+1]['deal_to_date']))
            { 
                $firstArray = $result[$i];
                unset($result[$i]);
                $secondArray = $result[$i+1];
                unset($result[$i]);
                $result[$i] = $secondArray;
                $result[$i+1] = $firstArray;
            }
        }
    }
}
I need this output.
Array
(
    [0] => Array
    (
        [entity_id] => 11
        [product_id] => 423
        [city] => 18
        [sort_order] => 11
        [deal_type_id] => dow
        [deal_from_date] => 2010-12-18
        [deal_to_date] => 2027-02-19
    )
    [1] => Array
        (
            [entity_id] => 10
            [product_id] => 424
            [city] => 18
            [sort_order] => 10
            [deal_type_id] => dow
            [deal_from_date] => 2010-12-18
            [deal_to_date] => 2026-02-19
        )
   [1] => Array
        (
            [entity_id] => 12
            [product_id] => 422
            [city] => 18
            [sort_order] => 12
            [deal_type_id] => dow
            [deal_from_date] => 2011-12-18
            [deal_to_date] => 2030-01-19
        )
    [2] => Array
        (
            [entity_id] => 13
            [product_id] => 420
            [city] => 18
            [sort_order] => 13
            [deal_type_id] => dow
            [deal_from_date] => 2011-12-18
            [deal_to_date] => 2030-01-19
        )
    [3] => Array
        (
            [entity_id] => 2
            [product_id] => 452
            [city] => 18
            [sort_order] => 2
            [deal_type_id] => dom
            [deal_from_date] => 2013-12-18
            [deal_to_date] => 2026-01-19
        )
    [4] => Array
        (
            [entity_id] => 1
            [product_id] => 463
            [city] => 18
            [sort_order] => 1
            [deal_type_id] => dod
            [deal_from_date] => 2013-12-18
            [deal_to_date] => 2025-01-19
        )
    [5] => Array
        (
            [entity_id] => 3
            [product_id] => 448
            [city] => 18
            [sort_order] => 3
            [deal_type_id] => dod
            [deal_from_date] => 2013-12-18
            [deal_to_date] => 2027-01-19
        )
       [6] => Array
        (
            [entity_id] => 6
            [product_id] => 439
            [city] => 18
            [sort_order] => 6
            [deal_type_id] => dom
            [deal_from_date] => 2013-12-18
            [deal_to_date] => 2028-01-19
        )
    [7] => Array
        (
            [entity_id] => 5
            [product_id] => 440
            [city] => 18
            [sort_order] => 5
            [deal_type_id] => dod
            [deal_from_date] => 2013-12-18
            [deal_to_date] => 2027-01-19
        )
[8] => Array
        (
            [entity_id] => 9
            [product_id] => 425
            [city] => 18
            [sort_order] => 9
            [deal_type_id] => dom
            [deal_from_date] => 2013-12-18
            [deal_to_date] => 2025-02-19
        )
    [9] => Array
        (
            [entity_id] => 4
            [product_id] => 441
            [city] => 18
            [sort_order] => 4
            [deal_type_id] => dod
            [deal_from_date] => 2013-12-18
            [deal_to_date] => 2024-01-19
        )
  [10] => Array
        (
            [entity_id] => 8
            [product_id] => 427
            [city] => 18
            [sort_order] => 8
            [deal_type_id] => dod
            [deal_from_date] => 2013-12-18
            [deal_to_date] => 2022-01-19
        )
    [11] => Array
        (
            [entity_id] => 7
            [product_id] => 433
            [city] => 18
            [sort_order] => 7
            [deal_type_id] => dom
            [deal_from_date] => 2013-12-18
            [deal_to_date] => 2013-01-19
        )
)
I need to sort array if deal multiple deal from date is same date. then sorting based on deal_to_date desc. only for same group.
 
     
     
    