Neden benim PHP kodu çalışmıyor?

2 Cevap php

Aşağıdaki kodu:

function swap(&$a, &$b)
{
     list($a, $b) = array($b, $a);
}

for ($i=0; count($resultset);$i++)
{
    for($j=1;$j<5;$j++)
    {
         $k = rand(1, 4);
         swap($resultset[$i]["option".$j],$resultset[$i]["option".$k]); 
    }
}

Bir MySQL sorgusu iki boyutlu bir dizidir, ben kimin tuşları seçenek1, opsiyonu2, Option3 ve Seçenek4 olan değerleri shuffle istiyorum. Ama benim kod çalışmıyor. Ben kendim hata bulabilirsiniz. Lütfen öneririz. Şimdiden teşekkürler!

2 Cevap

Sadece gördüm:

for ($i=0; count($resultset);$i++)

olmamalı

for ($i=0; $i < count($resultset);$i++)

Sen döngü için de karşılaştırma kaçırmış.

O yapmanın çok verimsiz, hata eğilimli ve okunamaz yoludur. Bunu denemek isteyebilirsiniz:

$optionKeys = array('option1', 'option2', 'option3', 'option4');
foreach ($resultSet as &$row) {
    # Get options
    $options = array_intersect_key($row, array_flip($optionKeys));
    # randomize
    shuffle($options);
    # re-assemble key=>value array
    $options = array_combine($optionKeys, $options);
    # assign back to $row
    $row = $options + $row;
}