3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php $data[] = array('volume' => 67, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 1); $data[] = array('volume' => 85, 'edition' => 6); $data[] = array('volume' => 98, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 6); $data[] = array('volume' => 67, 'edition' => 7); $arr = array(); $cert = new stdClass(); $cert->Hash = '1132775296C8A1A3A7BDE742089458B7D3F8FD64'; $cert->SerialNumber = '424DB63300050000D15B'; $cert->KeyDate = date('d.n.Y', strtotime('2009-10-20 12:47:00')); $cert->ExpDate = date('d.n.Y', strtotime('2010-10-20 12:57:00')); $cert->TypeID = 1; $cert->TypeName = 'Федеральный'; $cert->StatusID = 2; $cert->StatusName = 'недействующий'; $cert->PersonID = '581'; $cert->PersonName = 'Иванов Иван Иванович'; $arr[] = $cert; $cert = new stdClass(); $cert->Hash = '2132775296C8A1A3A7BDE742089458B7D3F8FD64'; $cert->SerialNumber = '424DB63300050000D15B'; $cert->KeyDate = date('d.n.Y', strtotime('2010-10-20 12:57:00')); $cert->ExpDate = date('d.n.Y', strtotime('2011-10-20 12:57:00')); $cert->TypeID = 1; $cert->TypeName = 'Федеральный'; $cert->StatusID = 2; $cert->StatusName = 'недействующий'; $cert->PersonID = '581'; $cert->PersonName = 'Петров Петр Петрович'; $arr[] = $cert; $cert = new stdClass(); $cert->Hash = '3132775296C8A1A3A7BDE742089458B7D3F8FD64'; $cert->SerialNumber = '424DB63300050000D15B'; $cert->KeyDate = date('d.n.Y', strtotime('2011-10-20 12:57:00')); $cert->ExpDate = date('d.n.Y', strtotime('2012-10-20 12:57:00')); $cert->TypeID = 1; $cert->TypeName = 'Федеральный'; $cert->StatusID = 2; $cert->StatusName = 'недействующий'; $cert->PersonID = '581'; $cert->PersonName = 'Сидоров Сидр Сидорович'; $arr[] = $cert; $volume = array(); // Получение списка столбцов foreach ($arr as $key => $row) { $volume[$key] = $row->KeyDate; $arr[$key]->index = $key; } // Сортируем данные по volume по убыванию и по edition по возрастанию // Добавляем $data в качестве последнего параметра, для сортировки по общему ключу array_multisort($volume, SORT_DESC, $arr); print_r($arr);
Output for 4.3.0 - 5.6.28, hhvm-3.10.0 - 3.12.0, 7.0.0 - 7.1.0
Array ( [0] => stdClass Object ( [Hash] => 3132775296C8A1A3A7BDE742089458B7D3F8FD64 [SerialNumber] => 424DB63300050000D15B [KeyDate] => 20.10.2011 [ExpDate] => 20.10.2012 [TypeID] => 1 [TypeName] => Федеральный [StatusID] => 2 [StatusName] => недействующий [PersonID] => 581 [PersonName] => Сидоров Сидр Сидорович [index] => 2 ) [1] => stdClass Object ( [Hash] => 2132775296C8A1A3A7BDE742089458B7D3F8FD64 [SerialNumber] => 424DB63300050000D15B [KeyDate] => 20.10.2010 [ExpDate] => 20.10.2011 [TypeID] => 1 [TypeName] => Федеральный [StatusID] => 2 [StatusName] => недействующий [PersonID] => 581 [PersonName] => Петров Петр Петрович [index] => 1 ) [2] => stdClass Object ( [Hash] => 1132775296C8A1A3A7BDE742089458B7D3F8FD64 [SerialNumber] => 424DB63300050000D15B [KeyDate] => 20.10.2009 [ExpDate] => 20.10.2010 [TypeID] => 1 [TypeName] => Федеральный [StatusID] => 2 [StatusName] => недействующий [PersonID] => 581 [PersonName] => Иванов Иван Иванович [index] => 0 ) )