Мне нужно отсортировать мой многомерный массив по значению в дочернем массиве. В приведенном ниже примере массива мне нужно отсортировать родительские массивы с помощью дочернего значения «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 вместо
Сортирует массив по ключу, поддерживая ключ к корреляции данных. Это полезно в основном для ассоциативных массивов.