Как отсортировать ассоциативный массив в PHP по определенному значению

Вот мой массив:

Array
(
    [0] => Array
        (
            [MyProduct] => Array
                (
                    [id] => 5681
                    [part_number] => 78689
                    [model] => Tiger Paw GTZ All Season
                    [web_price] => $74.68
                    [web_price_markup] => 91.07

                )
        )

    [1] => Array
        (
            [MyProduct] => Array
                (
                    [id] => 33370
                    [part_number] => 49946
                    [model] => Tiger Paw GTZ A/S 2
                    [web_price] => $75.92
                    [web_price_markup] => 92.58
                )
        )

    [2] => Array
        (
            [MyProduct] => Array
                (
                    [id] => 12542
                    [part_number] => 28953781
                    [model] => Ziex ZE950 A/S
                    [web_price] => $78.86
                    [web_price_markup] => 96.17                    
                )
        )       
)

Я хочу отсортировать этот массив по "web_price_markup", пожалуйста, помогите.

1 ответ

Прежде всего напишите функцию сравнения, которая сравнивает 'web_price_markup' ценности вашего объекта.

function compare($a,$b){   return strcasecmp($a['name'], $b['name']); }

а затем используйте usort (предположим, что ваш массив $x):

if(usort($x, 'compare')){
         var_dump($x);
    }
Другие вопросы по тегам