Мне нужно отсортировать мой многомерный массив по значению в дочернем массиве. В приведенном ниже примере массива мне нужно отсортировать родительские массивы с помощью дочернего значения "income_certificate".
function custom_sort($a, $b) {
return strcmp($a['revenue_certificate'], $b['revenue_certificate']);
}
usort($data_array, 'custom_sort');
Я чувствую, что я почти там, но где я просто не понимаю, как ссылаться на значение дочернего массива "income_certificate".
Array
(
[0] => Array
(
[company_id] => 130
[company_name] => Eureka / Brookings
[revenue_certificate] => 3
[revenue_cash] => 33
[average_sale] => 0
[total_orders] => 0
[certificates_per_order] => -1
[revenue_per_certificate] => -1
[visible_items] => 25
[retail_value] => -1
[average_discount] => -1
[new_advertisers] => 1
[emails_harvested] => 1
[new_customers] => 1
)
[1] => Array
(
[company_id] => 82
[company_name] => Big Deals Across America
[revenue_certificate] => 1
[revenue_cash] => 0
[average_sale] => 0
[total_orders] => 0
[certificates_per_order] => -1
[revenue_per_certificate] => -1
[visible_items] => 1
[retail_value] => -1
[average_discount] => -1
[new_advertisers] => 0
[emails_harvested] => 0
[new_customers] => 0
)
[2] => Array
(
[company_id] => 134
[company_name] => Fergus Falls, MN
[revenue_certificate] => 2
[revenue_cash] => 20
[average_sale] => 0
[total_orders] => 0
[certificates_per_order] => -1
[revenue_per_certificate] => -1
[visible_items] => 128
[retail_value] => -1
[average_discount] => -1
[new_advertisers] => 129
[emails_harvested] => 2
[new_customers] => 1
)
)
Спасибо за любую помощь.
Не использовать strcmp :)
function custom_sort($a, $b) {
return $a['revenue_certificate'] - $b['revenue_certificate'];
}
usort($data_array, 'custom_sort');
custom_sort должен возвращать отрицательное, 0, положительное значение, когда $ a <$ b, $ a == $ b, $ a <$ b соответственно (так же, как strcmp делает BTW).
Я считаю, что вам нужно использовать ksort вместо
Сортирует массив по ключу, поддерживая ключ к корреляции данных. Это полезно в основном для ассоциативных массивов.
ksort
выглядит так, как будто он сортирует ключи вместо проблемы OP, когда ему нужно отсортировать свой массив на основе значений определенного ключа. Я неправильно понимаю проблему и / или ваше решение?