3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data = array ( 'header' => array ( 1 => array ( 0 => array ( 'col_pos' => 1, 'sortable' => 1, 'content' => 'Compare', 'ct_help' => 'Comparehelptext..' ), 1 => array ( 'col_pos' => 2, 'sortable' => 1, 'content' => 'Product', 'ct_help' => 'Producthelptext..' ), 2 => array ( 'col_pos' => 3, 'sortable' => 1, 'content' => 'TypeofCover', 'ct_help' => 'Typeofcoverhelptext..' ), 3 => array ( 'col_pos' => 4, 'sortable' => 1, 'content' => 'RoadsideAssistance', 'ct_help' => 'Roadsideassistancehelptext...' ), 4 => array ( 'col_pos' => 5, 'sortable' => 1, 'content' => 'NationwhideRecovery', 'ct_help' => 'NationwideRecoverhelptext...' ), 5 => array ( 'col_pos' => 9, 'sortable' => 1, 'content' => 'Price', 'ct_help' => 'Pricehelptext...' ), 6 => array ( 'col_pos' => 10, 'sortable' => 1, 'ct_help' => '' ) ) ), 'row' => array ( 2 => array ( 0 => array ( 'col_pos' => 1, 'sortable' => 0, 'content' => 'Logo', 'ct_help' => '' ), 1 => array ( 'col_pos' => 2, 'sortable' => 0, 'content' => 'Productcover2', 'sort_value' => 2, 'ct_help' => '' ), 2 => array ( 'col_pos' => 3, 'sortable' => 0, 'content' => 'Vehicle&Personal2', 'sort_value' => 2, 'ct_help' => '' ), 3 => array ( 'col_pos' => 4, 'sortable' => 0, 'content' => '<b>Yes</b>', 'sort_value' => 1, 'ct_help' => '' ), 4 => array ( 'col_pos' => 5, 'sortable' => 0, 'content' => 'No', 'sort_value' => 0, 'ct_help' => '' ), 5 => array ( 'col_pos' => 9, 'sortable' => 0, 'content' => 'from75GBP', 'sort_value' => 75, 'ct_help' => '' ), 6 => array ( 'col_pos' => 10, 'sortable' => 0, 'content' => '<ahref=\\"#2\\">Visitsite></a>', 'ct_help' => '' ), ), 3 => array ( 0 => array ( 'col_pos' => 1, 'sortable' => 0, 'content' => 'Logo', 'ct_help' => '' ), 1 => array ( 'col_pos' => 2, 'sortable' => 0, 'content' => 'Productcover3', 'sort_value' => 3, 'ct_help' => '' ), 2 => array ( 'col_pos' => 3, 'sortable' => 0, 'content' => 'Vehicle&Personal3', 'sort_value' => 3, 'ct_help' => '' ), 3 => array ( 'col_pos' => 4, 'sortable' => 0, 'content' => 'No', 'sort_value' => 0, 'ct_help' => '' ), 4 => array ( 'col_pos' => 5, 'sortable' => 0, 'content' => '<b>Yes</b>', 'sort_value' => 1, 'ct_help' => '' ), 5 => array ( 'col_pos' => 9, 'sortable' => 0, 'content' => 'from73GBP', 'sort_value' => 73, 'ct_help' => '' ), 6 => array ( 'col_pos' => 10, 'sortable' => 0, 'content' => '<ahref=\\"#3\\">Visitsite></a>', 'ct_help' => '' ), ), 4 => array ( 0 => array ( 'col_pos' => 1, 'sortable' => 0, 'content' => 'Logo', 'ct_help' => '' ), 1 => array ( 'col_pos' => 2, 'sortable' => 0, 'content' => 'Productcover4', 'sort_value' => 4, 'ct_help' => '' ), 2 => array ( 'col_pos' => 3, 'sortable' => 0, 'content' => 'Vehicle&Personal4', 'sort_value' => 4, 'ct_help' => '' ), 3 => array ( 'col_pos' => 4, 'sortable' => 0, 'content' => '<b>Yes</b>', 'sort_value' => 1, 'ct_help' => '' ), 4 => array ( 'col_pos' => 5, 'sortable' => 0, 'content' => '<b>Yes</b>', 'sort_value' => 1, 'ct_help' => '' ), 5 => array ( 'col_pos' => 9, 'sortable' => 0, 'content' => 'from84GBP', 'sort_value' => 84, 'ct_help' => '' ), 6 => array ( 'col_pos' => 10, 'sortable' => 0, 'content' => '<ahref=\\"#4\\">Visitsite></a>', 'ct_help' => '' ), ), 5 => array ( 0 => array ( 'col_pos' => 1, 'sortable' => 0, 'content' => 'Logo', 'ct_help' => '' ), 1 => array ( 'col_pos' => 2, 'sortable' => 0, 'content' => 'Productcover5', 'sort_value' => 5, 'ct_help' => '' ), 2 => array ( 'col_pos' => 3, 'sortable' => 0, 'content' => 'Vehicle&Personal5', 'sort_value' => 5, 'ct_help' => '' ), 3 => array ( 'col_pos' => 4, 'sortable' => 0, 'content' => 'No', 'sort_value' => 0, 'ct_help' => '' ), 4 => array ( 'col_pos' => 5, 'sortable' => 0, 'content' => '<b>Yes</b>', 'sort_value' => 1, 'ct_help' => '' ), 5 => array ( 'col_pos' => 9, 'sortable' => 0, 'content' => 'from96GBP', 'sort_value' => 96, 'ct_help' => '' ), 6 => array ( 'col_pos' => 10, 'sortable' => 0, 'content' => '<ahref=\\"#5\\">Visitsite></a>', 'ct_help' => '' ) ) ) ) ; function sort_list($list, $field, $ascending = true) { $headers = array_values($list['header'])[0]; if (($key = array_search($field, array_column($headers, 'content'))) === false || $headers[$key]['sortable'] == 0) { // can't find field or field is not sortable, do nothing return $list; } usort($list['row'], function ($a, $b) use ($key, $ascending) { return $ascending ? $a[$key]['sort_value'] <=> $b[$key]['sort_value'] : $b[$key]['sort_value'] <=> $a[$key]['sort_value']; }); return $list; } print_r(sort_list($data, 'Price'));

preferences:
56.73 ms | 402 KiB | 5 Q