@prukon
Начинающий разработчик

Как отсортировать массив многомерный php по строковым значениям?

Есть массив:
$product_option_value_data[] = array(
                            'name'                    => $option_value['name'],
                            'product_option_value_id' => $option_value['product_option_value_id'],
							'option_value_id'         => $option_value['option_value_id'],
							'image'                   => $this->model_tool_image->resize($option_value['image'], 50, 50),
							'price'                   => $price,
							'price_prefix'            => $option_value['price_prefix']
						);

Я его сортирую вот так:
arsort($product_option_value_data);
Проблема том, что в поле option_value['name'] хранятся не числовые данные, а строковые: "0.95 кг","11.5 кг","3.2 кг" и поэтому массив принимает вот такой вид:

Array
(
    [0] => Array
        (
            [name] => 0,95 кг
            [product_option_value_id] => 535415
            [option_value_id] => 365
            [image] => 
            [price] => 479.00P
            [price_prefix] => =
        )
    [2] => Array
        (
            [name] => 11,5 кг
            [product_option_value_id] => 535416
            [option_value_id] => 447
            [image] => 
            [price] => 4960.00P
            [price_prefix] => =
        )
    [1] => Array
        (
            [name] => 3,2 кг
            [product_option_value_id] => 535417
            [option_value_id] => 520
            [image] => 
            [price] => 1500.00P
            [price_prefix] => =
        )
)


Т.е массив отсортирован по значениям в ключе [name], а именно по первым символам значений "0", "1", "3".
Как сделать так, чтобы сортировка все таки была корректной, т.е. на выходе должно быть вот так:

Array
(
    [0] => Array
        (
            [name] => 0,95 кг
            [product_option_value_id] => 535415
            [option_value_id] => 365
            [image] => 
            [price] => 479.00P
            [price_prefix] => =
        )
    [1] => Array
        (
            [name] => 3,2 кг
            [product_option_value_id] => 535417
            [option_value_id] => 520
            [image] => 
            [price] => 1500.00P
            [price_prefix] => =
        )
    [2] => Array
        (
            [name] => 11,5 кг
            [product_option_value_id] => 535416
            [option_value_id] => 447
            [image] => 
            [price] => 4960.00P
            [price_prefix] => =
        )
)
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы