Sắp xếp mảng PHP theo giá trị khóa

Trong bài viết này, chúng tôi sẽ đề cập đến một vấn đề phổ biến. cách sắp xếp một mảng các mảng theo giá trị của một khóa đã cho bằng PHP

Dưới đây, bạn có thể tìm thấy các phương pháp hữu ích nhất với các ví dụ của chúng

Hãy xem cách sử dụng hàm array_multisort[]

 'pork', 'price' => 5.43 ], 
	['type' => 'milk', 'price' => 2.9 ], 
	['type' => 'fruit', 'price' => 3.5] 
];

$price = [];

foreach [$inventory as $key => $row] {
  $price[$key] = $row['price'];
}
array_multisort[$price, SORT_DESC, $inventory];

var_dump[$inventory];

?>

Trong PHP5. 5 trở lên, có thể sử dụng array_column[] thay cho foreach

Đây là cách để làm điều đó

 'pork', 'price' => 5.43 ], 
	['type' => 'milk', 'price' => 2.9 ], 
	['type' => 'fruit', 'price' => 3.5] 
];

$price = array_column[$inventory, 'price'];

array_multisort[$price, SORT_DESC, $inventory];

var_dump[$inventory];

?>

Một tùy chọn khác là sử dụng chức năng so sánh tùy chỉnh. Đó là một giải pháp khá nhanh chóng và tiện dụng cho vấn đề

Đây là ví dụ

 'pork', 'price' => 5.43 ], 
	['type' => 'milk', 'price' => 2.9 ], 
	['type' => 'fruit', 'price' => 3.5] 
];

function invenDescSort[$item1, $item2]
{
  if [$item1['price'] == $item2['price']] {
    return 0;
  }
  return $item1['price'] < $item2['price'] ? 1 : -1;
}

usort[$inventory, 'invenDescSort'];


var_dump[$inventory];

?>

Nó sẽ sản xuất

array[3] {
  [0] =>
  array[2] {
    'type' =>
    string[4] "pork"
    'price' =>
    double[5.43]
  }
  [1] =>
  array[2] {
    'type' =>
    string[5] "fruit"
    'price' =>
    double[3.5]
  }
  [2] =>
  array[2] {
    'type' =>
    string[4] "milk"
    'price' =>
    double[2.9]
  }
}

Trong hướng dẫn này, chúng tôi đã trình bày hai phương pháp sắp xếp một mảng các mảng theo giá trị của một khóa đã cho bằng PHP

Tuy nhiên, có những giải pháp khả thi khác cho vấn đề. Bạn có thể tìm thêm thông tin và tùy chọn trên trang này

Khi bạn cố gắng sử dụng các hàm

Chủ Đề