2011-08-20 43 views
8

Xin chào Tôi có một mảng có khóa là ngày theo định dạng này.php - Sắp xếp mảng với ngày làm khóa

$arr = array(

    "20110805" => "2", 
    "20100703" => "5", 
    "20110413" => "3", 
    "20100805" => "4", 
    "20100728" => "6", 
    "20090416" => "7", 
    "20080424" => "8", 
    "20110819" => "1", 
); 

cách tôi có thể sắp xếp mảng này theo khóa. Cảm ơn bạn.

+0

-1 Google: "PHP loại mảng bằng phím" – fresskoma

+1

@TheHorse - Có rất nhiều điều mà có thể được tìm thấy bằng cách googling. Nó được ưa thích nhiều hơn để hiển thị các bản sao trên SO so với các nhận xét kiểu LMGTFY. :) –

+0

@Jared Farrish - SO SO SO câu hỏi đơn giản. tôi tìm câu trả lời tại google với kiến ​​thức về php out2 – TheHorse

Trả lời

20

Với những ngày ở định dạng đó, so sánh theo thứ tự chữ cái sẽ hoạt động tốt. Sử dụng hàm PHP ksort.

ksort($arr); 
+2

Ví dụ: http://codepad.org/5WjP74TR –

+0

hi cảm ơn câu trả lời của bạn, ksort sẽ sắp xếp mảng theo khóa nhưng khóa ở đây là ngày và ksort không sắp xếp mảng theo thứ tự. tôi cần chuyển đổi các khóa thành định dạng ngày hợp lệ và sau đó thực hiện ksort, nhưng thực hiện điều đó sẽ ảnh hưởng đến phần còn lại của mã. bất kỳ đề xuất?? – bharath

+1

@bharath - Ngày của bạn theo thứ tự NGÀY NĂM, có nghĩa là bạn có thể sắp xếp chúng bằng cách sắp xếp bình thường và nó sẽ theo thứ tự thích hợp, miễn là bạn có '0' được đặt trước thành MONTH và NGÀY ngắn. "Ngày" của bạn về cơ bản chỉ là một số có thể được phân tích cú pháp thành một ngày. –

4

Chỉ cần này dòng mã:

ksort($arr); 
Các vấn đề liên quan