Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak posortować listę tablic w zygzaku w PHP?

Pomysł polegałby na:

  • Posortuj swoje dane początkowe (lub najlepiej zacznij od ich posortowania).
  • Podziel to na kawałki, w zasadzie po jednym na każdy wiersz.
  • Odwróć kolejność każdego innego kawałka.
  • Odwróć macierz, aby mieć swoje grupy – jedna na kolumnę zamiast jednej na wiersz.

Przykład:

// 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);

Wyjście:

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. Użyj MySQL, aby określić, czy dzisiaj są urodziny użytkownika

  2. Kiedy używać SQL_NO_CACHE

  3. Nie znaleziono polecenia Mysql w systemie OS X 10.7

  4. Błąd MySQL:2013, Utracono połączenie z serwerem MySQL podczas „odczytu początkowego pakietu komunikacyjnego”, błąd systemowy:0

  5. Polecenia MySQL:Ściągawka z popularnych zapytań MySQL