0

I have unsort array object by month as below.

$source = [
  ['key' => 1,'case_id' => 1, 'month' => 6],
  ['key' => 2,'case_id' => 1, 'month' => 7],
  ['key' => 3,'case_id' => 2, 'month' => 7],
  ['key' => 4,'case_id' => 2, 'month' => 8],
  ['key' => 5,'case_id' => 3, 'month' => 2],
  ['key' => 6,'case_id' => 3, 'month' => 4],
  ['key' => 7,'case_id' => 4, 'month' => 13],
  ['key' => 8,'case_id' => 4, 'month' => 14]
];

I would like to sort by month value with PHP and create new array object as below prefer.

$newsource = [
  ['key' => 5,'case_id' => 3, 'month' => 2],
  ['key' => 6,'case_id' => 3, 'month' => 4],
  ['key' => 1,'case_id' => 1, 'month' => 6],
  ['key' => 2,'case_id' => 1, 'month' => 7],
  ['key' => 3,'case_id' => 2, 'month' => 7],
  ['key' => 4,'case_id' => 2, 'month' => 8],
  ['key' => 7,'case_id' => 4, 'month' => 13],
  ['key' => 8,'case_id' => 4, 'month' => 14]
];

Any advice or guidance on this would be greatly appreciated, Thanks.

joenpc npcsolution
  • 737
  • 4
  • 11
  • 25
  • Does this answer your question? [How can I sort arrays and data in PHP?](https://stackoverflow.com/questions/17364127/how-can-i-sort-arrays-and-data-in-php) – CBroe Aug 11 '21 at 09:51

1 Answers1

3

Hope this helps you---

  $source = [
  ['key' => 1,'case_id' => 1, 'month' => 6],
  ['key' => 2,'case_id' => 1, 'month' => 7],
  ['key' => 3,'case_id' => 2, 'month' => 7],
  ['key' => 4,'case_id' => 2, 'month' => 8],
  ['key' => 5,'case_id' => 3, 'month' => 2],
  ['key' => 6,'case_id' => 3, 'month' => 4],
  ['key' => 7,'case_id' => 4, 'month' => 13],
  ['key' => 8,'case_id' => 4, 'month' => 14]
];

 uasort($source, function($a, $b){
    return $a['month'] > $b['month'];
});

print_r($source);   
PHP Geek
  • 3,949
  • 1
  • 16
  • 32