webForumDet fria alternativet

Implode an array

0 svar · 220 visningar · startad av Schmoo2

Schmoo2Medlem sedan nov. 200721 inlägg
#1

Hej,
Jag har trubbel med array och implode. $taskString nedan får med alla tecken i $taskArray men i fel ordning. Jag har koden:

if ($_POST['oppnaUtsagor']) {
   do { $pos = mt_rand(1,3); } while ($pos == 2);
   $taskArray[$pos] = $row['operator'];
   if ($pos == 1)
      $taskArray[3] = "=";
   else
      $taskArray[1] = "=";
   do { $pos = mt_rand(0,4); } while (($pos == 1) || ($pos == 3));
   $taskArray[$pos] = "_";
   if ($pos == 0) {
      $taskArray[2] = $rand1;
      $taskArray[4] = $rand2;
   }
   if ($pos == 2) {
      $taskArray[0] = $rand1;
      $taskArray[4] = $rand2;
   }
   if ($pos == 4) {
      $taskArray[0] = $rand1;
      $taskArray[2] = $rand2;
   }
}
else {
   $taskArray = array($rand1, $row['operator'], $rand2, "=", "_");
}
print $taskArray[0].$taskArray[1].$taskArray[2].$taskArray[3].$taskArray[4]."<br><br>";
$p0 = $taskArray[0];
$p1 = $taskArray[1];
$p2 = $taskArray[2];
$p3 = $taskArray[3];
$p4 = $taskArray[4];
$taskArray = array($p0, $p1, $p2, $p3, $p4);
 
$taskString = implode(" ", $taskArray);

När jag gör, enligt koden ovan,
print

$taskArray[0].$taskArray[1].$taskArray[2].$taskArray[3].$taskArray[4]."<br><br>";

så ligger värdena där de ska. $taskArray skapas väl som en array per automatik när jag tilldelar värden? Om jag lägger in $taskArray = array(); före if-satsen så hjälper det inte. När jag la in

$p0 = $taskArray[0];
$p1 = $taskArray[1];
$p2 = $taskArray[2];
$p3 = $taskArray[3];
$p4 = $taskArray[4];
$taskArray = array($p0, $p1, $p2, $p3, $p4);

så funkar det. Men jag kan inte begripa varför det behövs???

129 ms totalt · 3 externa anrop · v20260731065814-full.b943c234
126 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)