Nút sắp xếp php

Việc lấy thông tin từ một mảng thông tin đã được sắp xếp luôn dễ dàng hơn, nếu bạn không phải tìm kiếm từng phần tử của mỗi mảng một lần. Ví dụ. giả sử bạn đã lưu trữ điểm của các sinh viên khác nhau trong một lớp trong một mảng (mảng) hoặc bảng (bảng dữ liệu). Nếu dữ liệu không được sắp xếp theo điểm số thu được, thì bạn sẽ phải xem điểm của từng học sinh trong lớp trước khi bạn có thể biết ai đạt được điểm cao nhất và thấp nhất. Nếu bảng dữ liệu đã được sắp xếp từ thấp đến cao dựa trên điểm số, thì chỉ cần vào điểm số của sinh viên nhìn đầu tiên bạn sẽ biết điểm thấp nhất

Việc sắp xếp thực hiện rất nhiều nhiệm vụ, yêu cầu truy xuất hoặc lấy một tập dữ liệu cụ thể rất dễ dàng và hiệu quả. Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách sử dụng các hàm PHP sẵn có để sắp xếp các loại mảng khác nhau

Sắp xếp một mảng theo giá trị

Sắp xếp một mảng theo giá trị của các phần tử của nó trong PHP rất dễ dàng. Bạn có thể chọn duy trì hoặc loại bỏ các liên kết khóa-giá trị (khóa - giá trị) và bạn cũng có thể xác định chức năng riêng của mình để xác định cách sắp xếp các phần tử. Tôi sẽ chỉ cho bạn làm sao trong phần hướng dẫn này

Bạn có thể sử dụng hàm

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
7 để sắp xếp các giá trị của một mảng từ thấp đến cao. Tuy nhiên, nó sẽ không duy trì bất kỳ liên kết khóa-giá trị nào khi sắp xếp mảng đó. Các khóa mới được gán cho các phần tử sắp xếp thay thế vì sắp xếp lại đơn giản. Tham số tùy chọn thứ hai cho phép bạn sắp xếp các thành phần. Tham số này có thể có sáu giá trị khác nhau

  1.  "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];
    
    echo "Before Sorting — \n";
    foreach($fruit_preferences as $person=>$preference) {
        echo $person." likes ".$preference."\n";
    }
    
    /*
    Before Sorting — 
    James likes Orange
    John likes Banana
    Patricia likes Apple
    Jennifer likes Mango
    Mary likes Grapes
    */
    
    sort($fruit_preferences);
    
    echo "After Sorting  — \n";
    foreach($fruit_preferences as $person=>$preference) {
        echo $person." likes ".$preference."\n";
    }
    
    /*
    After Sorting  — 
    0 likes Apple
    1 likes Banana
    2 likes Grapes
    3 likes Mango
    4 likes Orange
    */
    
    ?>
    8 - tham số này sẽ sắp xếp các giá trị mà không thay đổi kiểu của chúng
  2. SORT_NUMERIC - tham số này sẽ sắp xếp các giá trị bằng cách so sánh chúng bằng số lượng
  3.  "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];
    
    echo "Before Sorting — \n";
    foreach($fruit_preferences as $person=>$preference) {
        echo $person." likes ".$preference."\n";
    }
    
    /*
    Before Sorting — 
    James likes Orange
    John likes Banana
    Patricia likes Apple
    Jennifer likes Mango
    Mary likes Grapes
    */
    
    sort($fruit_preferences);
    
    echo "After Sorting  — \n";
    foreach($fruit_preferences as $person=>$preference) {
        echo $person." likes ".$preference."\n";
    }
    
    /*
    After Sorting  — 
    0 likes Apple
    1 likes Banana
    2 likes Grapes
    3 likes Mango
    4 likes Orange
    */
    
    ?>
    9 - tham số này sẽ sắp xếp các giá trị bằng cách so sánh chúng theo dạng chuỗi (string)
  4.  "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];
    
    echo "Before Sorting — \n";
    foreach($fruit_preferences as $person=>$preference) {
        echo $person." likes ".$preference."\n";
    }
    
    /*
    Before Sorting — 
    James likes Orange
    John likes Banana
    Patricia likes Apple
    Jennifer likes Mango
    Mary likes Grapes
    */
    
    sort($fruit_preferences);
    
    echo "After Sorting  — \n";
    foreach($fruit_preferences as $person=>$preference) {
        echo $person." likes ".$preference."\n";
    }
    
    /*
    After Sorting  — 
    0 likes Apple
    1 likes Banana
    2 likes Grapes
    3 likes Mango
    4 likes Orange
    */
    
    ?>
    0 - tham số này sẽ so sánh các giá trị dưới dạng chuỗi dựa trên miền địa phương hiện tại. Bạn có thể tự cập nhật miền địa phương bằng cách sử dụng
     "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];
    
    echo "Before Sorting — \n";
    foreach($fruit_preferences as $person=>$preference) {
        echo $person." likes ".$preference."\n";
    }
    
    /*
    Before Sorting — 
    James likes Orange
    John likes Banana
    Patricia likes Apple
    Jennifer likes Mango
    Mary likes Grapes
    */
    
    sort($fruit_preferences);
    
    echo "After Sorting  — \n";
    foreach($fruit_preferences as $person=>$preference) {
        echo $person." likes ".$preference."\n";
    }
    
    /*
    After Sorting  — 
    0 likes Apple
    1 likes Banana
    2 likes Grapes
    3 likes Mango
    4 likes Orange
    */
    
    ?>
    1
  5.  "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];
    
    echo "Before Sorting — \n";
    foreach($fruit_preferences as $person=>$preference) {
        echo $person." likes ".$preference."\n";
    }
    
    /*
    Before Sorting — 
    James likes Orange
    John likes Banana
    Patricia likes Apple
    Jennifer likes Mango
    Mary likes Grapes
    */
    
    sort($fruit_preferences);
    
    echo "After Sorting  — \n";
    foreach($fruit_preferences as $person=>$preference) {
        echo $person." likes ".$preference."\n";
    }
    
    /*
    After Sorting  — 
    0 likes Apple
    1 likes Banana
    2 likes Grapes
    3 likes Mango
    4 likes Orange
    */
    
    ?>
    2 - tham số này sẽ sắp xếp các phần tử bằng cách sử dụng "sắp xếp tự nhiên" trong khi so sánh chúng dưới dạng chuỗi
  6.  "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];
    
    echo "Before Sorting — \n";
    foreach($fruit_preferences as $person=>$preference) {
        echo $person." likes ".$preference."\n";
    }
    
    /*
    Before Sorting — 
    James likes Orange
    John likes Banana
    Patricia likes Apple
    Jennifer likes Mango
    Mary likes Grapes
    */
    
    sort($fruit_preferences);
    
    echo "After Sorting  — \n";
    foreach($fruit_preferences as $person=>$preference) {
        echo $person." likes ".$preference."\n";
    }
    
    /*
    After Sorting  — 
    0 likes Apple
    1 likes Banana
    2 likes Grapes
    3 likes Mango
    4 likes Orange
    */
    
    ?>
    3 hoặc
     "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];
    
    echo "Before Sorting — \n";
    foreach($fruit_preferences as $person=>$preference) {
        echo $person." likes ".$preference."\n";
    }
    
    /*
    Before Sorting — 
    James likes Orange
    John likes Banana
    Patricia likes Apple
    Jennifer likes Mango
    Mary likes Grapes
    */
    
    sort($fruit_preferences);
    
    echo "After Sorting  — \n";
    foreach($fruit_preferences as $person=>$preference) {
        echo $person." likes ".$preference."\n";
    }
    
    /*
    After Sorting  — 
    0 likes Apple
    1 likes Banana
    2 likes Grapes
    3 likes Mango
    4 likes Orange
    */
    
    ?>
    2 để tắt phân biệt chữ hoa chữ thường trong khi sắp xếp chuỗi

Dưới đây là một vài ví dụ sắp xếp để giúp bạn nhanh chóng nắm bắt sự khác biệt giữa tất cả các cờ sắp xếp

Trong ví dụ, sắp xếp thông thường (sắp xếp thông thường), các chuỗi chữ số được chuyển đổi thành các giá trị của chúng và việc sắp xếp được thực hiện phù hợp. Chuỗi "Apple" không phải là số nên không bị ảnh hưởng và được so sánh dưới dạng chuỗi

Trong ví dụ thứ hai, sắp xếp các số (numeric sort), chúng tôi muốn dữ liệu được sắp xếp dựa trên giá trị để "Apple" được chuyển đổi thành giá trị số 0 và xuất hiện đầu tiên. Phần còn lại của các giá trị được sắp xếp như mong đợi

Trong ví dụ thứ ba, tất cả các giá trị được coi là chuỗi. Có nghĩa là thay vì so sánh giá trị của 123 hoặc 3249832 với 38, chúng được so sánh như một chuỗi - mỗi khi một ký tự. Vì "1" xuất hiện trước "3", giá trị 123 được coi là thấp hơn 38

Nếu bạn muốn sắp xếp các giá trị mảng của mình từ cao đến thấp thay vì thấp đến cao, bạn có thể làm như vậy với sự trợ giúp của hàm

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
5. Nó chấp nhận tất cả các tham số giống như
 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
6 nhưng sắp xếp các giá trị theo thứ tự ngược lại. Nó không duy trì bất kỳ liên kết giá trị khóa nào, vì vậy nó không phải là một lựa chọn tốt để sắp xếp các mảng liên kết

Sắp xếp một mảng liên kết

Liên kết giữa khóa và giá trị trở nên quan trọng khi bạn đang xử lý các mảng liên kết. Xem xét ví dụ sau đây, trong đó một mảng liên kết được sử dụng để lưu trữ tên của những người khác nhau và loại trái cây yêu thích của họ. Nếu bạn muốn sắp xếp danh sách theo thứ tự abc theo tên của các loại cây trái, thì việc sử dụng hàm

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
6 từ phần trước sẽ dẫn đến việc mất các khóa liên quan

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>

Như bạn có thể thấy, chúng tôi không chỉ mất liên kết của mọi người với các loại trái cây yêu thích của họ, chúng tôi còn mất đi tên của những người khác nhau. Mỗi giá trị sắp xếp chỉ được xác định là một số mới dựa trên vị trí của nó trong mảng sắp xếp

Để giúp bạn giải quyết vấn đề này một cách dễ dàng, PHP có hai hàm khác nhau duy trì liên kết từ khóa - giá trị trong khi sắp xếp các mảng theo giá trị của chúng. This function is

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
8 and
 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
9. Đoạn mã sau sắp xếp mảng tương tự
 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
20 nhưng sử dụng
 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
8

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
2

Rõ ràng từ ví dụ trên, giá trị Apple chuyển lên đầu tiên trong khi vẫn duy trì mối quan hệ với Patricia. Cây tên trái có thể được sắp xếp ngược lại dễ dàng bằng cách sử dụng hàm

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
9

Cả hai hàm này đều chấp nhận các cờ sắp xếp giống nhau làm giá trị của tham số tùy chọn thứ hai của chúng là

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
6 và
 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
5

Sắp xếp các phần tử mảng theo giá trị với các hàm do người dùng định nghĩa

Bốn chức năng sắp xếp có thể dễ dàng xử lý các nhu cầu sắp xếp phổ biến của bạn với sự trợ giúp của các cờ khác nhau. Tuy nhiên, hãy ghép đôi khi tiêu chí của bạn để so sánh các yếu tố mảng có thể khác nhau

Cho đến lúc bạn có một loạt các từ ngẫu nhiên cần được sắp xếp theo thứ tự abc. Tuy nhiên, bạn cũng muốn sắp xếp chúng dựa trên chiều dài của chúng trước khi sắp xếp chúng theo thứ tự bảng chữ cái. Ví dụ, sở thú sẽ nằm sau quả táo trong cách sắp xếp theo thứ tự chữ cái truyền thống. Tuy nhiên, nếu muốn hiển thị các từ rút ngắn trước các từ dài hơn, zoo sẽ xuất hiện trước apple. Trong cùng một tập hợp các chữ cái, ape sẽ nằm trước vườn thú theo thứ tự chữ cái

Về cơ bản, ban đầu các từ được sắp xếp dựa trên độ dài của chúng và sau đó các từ có cùng số lượng chữ cái sắp xếp theo thứ tự abc trong nhóm riêng của chúng. Kiểu sắp xếp này không được tích hợp vào PHP nên chúng ta sẽ phải tự viết hàm sắp xếp riêng

Điều mà PHP làm trong trường hợp này là cung cấp cho bạn một số hàm có thể được sử dụng để truyền vào mảng mà bạn muốn sắp xếp cùng với tên của hàm sắp xếp của riêng bạn

Bạn có thể sử dụng hàm

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
25 để sắp xếp các giá trị mảng trong các mảng thông thường. Tương tự, bạn có thể sử dụng hàm
 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
26 để sắp xếp các giá trị trong các mảng liên kết trong khi vẫn duy trì các liên kết từ khóa - giá trị

Đoạn mã dưới đây để xem cách thực hiện hành vi này

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
0

Trong các hàm gọi lại được sử dụng để sắp xếp tùy chỉnh, chúng ta phải trả về một số nguyên nhỏ hơn 0 để xem giá trị đầu tiên nhỏ hơn giá trị thứ hai. Trả về 0 nếu giá trị ban đầu bằng giá trị thứ hai. Trả về một số nguyên lớn hơn 0 nếu giá trị đầu tiên lớn hơn giá trị thứ hai

Vì tiêu chí sắp xếp chính của chúng tôi là độ dài của chuỗi, nên chúng tôi trực tiếp trả về -1 nếu từ đầu tiên rút ngắn hơn từ thứ hai. Tương tự, chúng tôi trực tiếp trả về 1 nếu từ đầu tiên dài hơn từ thứ hai. Nếu hai từ có độ dài bằng nhau, chúng ta so sánh chúng theo thứ tự bảng chữ cái bằng cách sử dụng hàm

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
27 và trả về giá trị của nó

Như bạn có thể thấy trong kết quả, sắp xếp các tùy chọn sắp xếp của chúng tôi sắp xếp lại các từ chính xác theo cách chúng tôi muốn

Sắp xếp một mảng theo khóa (key)

Sắp xếp một mảng dựa trên các từ khóa của nó thường hữu ích khi bạn đang xử lý các mảng liên kết. Chẳng hạn, bạn có thể có một mảng với thông tin về tổng số sân bay ở các quốc gia khác nhau. Giả sử rằng tên của các quốc gia khác nhau là từ khóa và số lượng sân bay là giá trị, bạn có thể muốn sắp xếp tên các quốc gia theo thứ tự bảng chữ cái. Điều này rất dễ thực hiện với các hàm

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
28 và
 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
29. Cả hai hàm này sẽ duy trì liên kết từ khóa - giá trị của các phần tử sau khi sắp xếp. Hàm
 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
28 sắp xếp các phím từ thấp đến cao và
 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
29 sắp xếp các phím từ cao đến thấp

Dưới đây là một ví dụ sắp xếp cơ bản

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
6

You can't don't need to build the function of your own to sorting the keys of array by

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
02. Giống như hàm
 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
25, hàm gọi lại trong
 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
02 cũng yêu cầu bạn trả về số nguyên nhỏ hơn 0 nếu khóa thứ nhất nhỏ hơn khóa thứ hai và số nguyên lớn hơn 0 nếu khóa thứ nhất lớn hơn khóa thứ hai. Hàm này cũng duy trì liên kết khóa - giá trị của các phần tử trong mảng

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
0

Trong ví dụ trên, chúng tôi đã sử dụng sắp xếp tùy chỉnh của phần trước để sắp xếp tên của các quốc gia trước theo độ dài của tên và sau đó theo thứ tự của bảng chữ cái

Sắp xếp các mảng nhiều chiều trong PHP

Việc đảm bảo nhận những thông tin đa chiều rõ ràng rất phổ biến trong đời thường. Trong trường hợp không may, các tổ chức sẽ lưu trữ điểm của tất cả học sinh của nhiều môn học trong một bảng thay vì tạo các bảng mới cho mỗi môn học. Nếu bạn phải lưu trữ thông tin tương tự trong PHP, bạn cũng muốn thực hiện điều đó bằng cách sử dụng một mảng đa chiều thay vì mảng riêng cho từng đối tượng

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách sắp xếp một mảng nhiều chiều bằng cách sử dụng danh sách các tòa nhà cao nhất thế giới làm ví dụ. Nhiều người của chúng tôi sẽ chứa thông tin về tên của tòa nhà, thành phố và quốc gia, nơi nó có địa điểm, số tầng và tổng tính cao bằng cùng một số năm mà nó được xây dựng

Khi bạn muốn sắp xếp các giá trị trong một mảng nhiều chiều dựa trên một trường cụ thể, bạn chỉ cần sử dụng hàm

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
25. Ví dụ dưới đây sẽ giúp bạn hiểu kỹ thuật này tốt hơn

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
2

Trong ví dụ trên, thông tin về mỗi tòa nhà được lưu trữ trong mảng riêng của nó bên trong mảng chính

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
06. Hàm
 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
07 chỉ cần trừ số tầng trong tòa nhà thứ hai ra khỏi tòa nhà thứ nhất để xác định tòa nhà nào nhỏ hơn theo tiêu chí của chúng tôi. Chúng tôi không cần phải lắng nghe về việc trả lại một giá trị âm hoặc công cụ dương có thể bởi vì tất cả các giá trị âm có nghĩa là nhỏ hơn và tất cả các giá trị dương có nghĩa là lớn hơn

Cuối cùng, chúng tôi chỉ lặp qua mảng chính và đưa ra thông tin về từng nhà

Tổng kết

Trong hướng dẫn này, tôi đã chỉ cho bạn một số hàm khác nhau trong PHP có thể được sử dụng để sắp xếp các mảng theo khóa hoặc giá trị của chúng. Chúng tôi cũng đã biết cách sắp xếp một mảng theo các khóa hoặc giá trị của nó bằng các tiêu chí sắp xếp tùy chọn của riêng chúng tôi với sự trợ giúp của các chức năng

 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
08 và
 "Orange", "John" => "Banana", "Patricia" => "Apple", "Jennifer" => "Mango", "Mary" => "Grapes"];

echo "Before Sorting — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
Before Sorting — 
James likes Orange
John likes Banana
Patricia likes Apple
Jennifer likes Mango
Mary likes Grapes
*/

sort($fruit_preferences);

echo "After Sorting  — \n";
foreach($fruit_preferences as $person=>$preference) {
    echo $person." likes ".$preference."\n";
}

/*
After Sorting  — 
0 likes Apple
1 likes Banana
2 likes Grapes
3 likes Mango
4 likes Orange
*/

?>
26. Phần cuối thảo luận về cách sắp xếp tất cả các giá trị trong một mảng nhiều chiều chỉ bằng một trường cụ thể