Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara mengurutkan daftar array dalam zig-zag di PHP?

Idenya adalah untuk:

  • Urutkan data awal Anda (atau lebih baik, mulailah dengan mengurutkannya).
  • Bagi menjadi beberapa bagian, pada dasarnya satu untuk setiap baris Anda.
  • Membalik urutan setiap potongan lainnya.
  • Balik matriks sehingga Anda mendapatkan grup - satu per kolom, bukan satu per baris.

Contoh:

// Basic sample data.
$players = range(1, 24);

// Sort them ascending if you need to.
sort($players);

// Make a matrix. 2d array with a column per group.
$matrix = array_chunk($players, ceil(count($players)/4));

// Reverse every other row.
for ($i = 0; $i < count($matrix); $i++) {
    if ($i % 2) {
        $matrix[$i] = array_reverse($matrix[$i]);
    }
}

// Flip the matrix.
$groups = array_map(null, ...$matrix); // PHP 5.6 with the fancy splat operator.
//$groups = call_user_func_array('array_map', array_merge([null], $matrix)); // PHP < 5.6 - less fancy.

// The result is...
print_r($groups);

Keluaran:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 12
            [2] => 13
            [3] => 24
        )

    [1] => Array
        (
            [0] => 2
            [1] => 11
            [2] => 14
            [3] => 23
        )

    [2] => Array
        (
            [0] => 3
            [1] => 10
            [2] => 15
            [3] => 22
        )

    [3] => Array
        (
            [0] => 4
            [1] => 9
            [2] => 16
            [3] => 21
        )

    [4] => Array
        (
            [0] => 5
            [1] => 8
            [2] => 17
            [3] => 20
        )

    [5] => Array
        (
            [0] => 6
            [1] => 7
            [2] => 18
            [3] => 19
        )

)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa memilih baris dengan ID tertinggi di MySQL?

  2. Campuran ilegal dari susunan (utf8mb4_unicode_ci,IMPLICIT) dan (utf8mb4_general_ci,IMPLICIT) untuk operasi '='

  3. PHP, PDO, MySQL, Pemberitahuan:Mencoba mendapatkan properti non-objek

  4. Cara membuat kenaikan otomatis kunci utama tabel MySQL dengan beberapa awalan

  5. Daftar SELECT tidak ada dalam klausa GROUP BY dan berisi kolom nonagregated .... tidak kompatibel dengan sql_mode=only_full_group_by