Sắp xếp mảng Do PHP lưu trữ các phần tử trong mảng theo thứ tự chúng được đưa vào mảng, chính vì vậy đôi lúc sẽ nảy sinh nhu cầu sắp xếp các phần từ trong mảng. | Tự Học PHP Chưcmg 4 ỉ IPHP ein bản Mlảinig tomg Sắp xếp mảng Do PHP lưu trữ các phần tử trong mảng theo thứ tự chúng được đưa vào mảng chính vì vậy đôi lúc sẽ nảy sinh nhu cầu sắp xếp các phần từ trong mảng. Để sắp xếp ta có thể dùng các hàm có sẵn của PHP tiêu biểu là hàm sort Code php arr array 5 3 6 4 2 1 var_dump arr echo br n sort arr var_dump arr Kết quả thu được sẽ là Quote array 6 o int 5 1 int 3 2 int 6 3 int 4 4 int 2 5 int 1 array 6 o int 1 1 int 2 2 int 3 3 int 4 4 int 5 5 int 6 Các bạn có thể thấy là các giá trị đã được sắp xếp tăng dần tuy nhiên các key cũng đã bị thay đổi. Để dữ nguyên các key ban đầu ta sử dụng hàm asort. Thay thế hàm sort trong ví dụ bằng asort thì sẽ thu được kết quả như sau Quote array 6 o int 5 1 int 3 2 int 6 3 int 4 4 int 2 5 int 1 array 6 5 int 1 4 int 2 1 int 3 3 int 4 o int 5 2 int 6 Các hàm này cũng sẽ làm việc tốt đẹp với các xâu kí tự tuy nhiên với 1 mảng có các giá trị and thì kết quả thu được sẽ là Quote By traibingo 1 Page Tự Học PHP Đơn giản là vì mã ASCII của 1 nhỏ hơn 5 nên kết quả sẽ ra như vậy. Để giải quyết vấn đề này thay vì sort và asort ta sử dụng natsort hoặc natcasesort. Kết quả thu được sẽ là Sắp xếp mảng nâng cao Giả sử bạn có mảng nhiều chiều sau Code php bikes array bikes Tourmeister array name Grande Tour Meister engine_cc 1100 price 12999 bikes Slasher1000 array name Slasher XYZ 1000 engine_cc 998 price 11450 bikes OffRoadster array name Off-Roadster engine_cc 550 price 4295 Khi muốn sắp xếp mảng bikes theo price của mỗi phần tử thì làm thế nào Không thể dùng các hàm ở trên được Vậy giải pháp duy nhất là ta sẽ phải tự sắp xếp Code php function compare_price in_bike1 in_bike2 if in_bike1 price in_bike2 price return 1 else if in_bike1 price in_bike2 price return 0 else return -1 By traibingo 2 Page Tự Học PHP uasort bikes compare_price foreach bikes as .