sql >> Database >  >> RDS >> Mysql

Hoe array-lijst in zigzag sorteren in PHP?

Het idee zou zijn om:

  • Sorteer je startgegevens (of begin er liever mee gesorteerd).
  • Verdeel het in stukjes, in principe één per elk van je rijen.
  • Keer de volgorde van elk ander stuk om.
  • Draai de matrix om zodat je je groepen hebt - één per kolom in plaats van één per rij.

Voorbeeld:

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

Uitvoer:

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. syntaxisfout:'scheidingsteken' is hier geen geldige invoer

  2. MySQL Connector/Python - python-variabele in MySQL-tabel invoegen

  3. mysql-query PHP:ik wil dat specifieke items eerst zijn en vervolgens de rest van de items sorteren

  4. Is een Load DATA zonder bestand (d.w.z. in het geheugen) mogelijk voor MySQL en Java?