Cicli for dentro cicli for dentro funzioni

non so se sono io che ho il cervello fuso, o php che gioca brutti scherzi...

allora, io ho questo codice:

<?php
for ($a = 1; $a <= 7; $a++) {

if ($navi_tot_att > 0) {
   for ($i = 1; $i <= $quantita_att; $i++) {
      $array1[$i]["scudo"] = $array1[$i]["numero"] * ($array1[$i]["titanio"] + $array1[$i]["diamante"]) / 10 * (1 + (0.1 * $array2["2"]));
      $array1[$i]["corazza"] = $array1[$i]["numero"] * $array1[$i]["corazza"] * ( 1 + ( 0.1 * $array2["3"]));
      $array1[$i]["attacco"] = $array1[$i]["numero"] * $array1[$i]["attacco"] * ( 1 + ( 0.1 * $array2["1"]));
      $corazza = $corazza + $array1[$i]["corazza"];
      $attacco = $attacco + $array1[$i]["attacco"];
      $scudo = $scudo + $array1[$i]["scudo"];
   }
} else {
   $navi_tot_att = 0;
   break;
}
}
?>

il mio problema è che il ciclo dentro l'if, non viene eseguito con le condizioni specificate dentro le () di quel for, ma viene eseguito secondo i parametri del for principale...

praticamente il for all'interno dell'if dev'essere eseguito 2 volte, e invece viene eseguito 7 volte, che è il valore impostato nel for principale...

perchè php è talmente leso che esegue questa operazione?? sono giorni che provo e riprovo ma continua a darmi risultati che sono sbagliati...

ho provato a utilizzare un foreach per sostituire il for, ma molto probabilmente non ho capito niente su come usarlo, e quindi risultati 0 :(

qualcuno ha qualche idea su come potrei/dovrei fare??

grazie :D

inviato 9 anni fa
Mr SaJaN
X 0 X

il ciclo all'interno del for viene eseguito 7 * $quantita_att volte se $navi_tot_att è maggiore di 0.

O almeno così dovrebbe essere in base al codice che hai scritto.

Ammettendo che $navi_tot_att > 0:

se $quantita_att è = a 1 viene eseguito 7 volte, se = a 2 viene eseguito 14 volte e così via.

risposto 9 anni fa
LonelyWolf
X 0 X

risolto, mi ero dimenticato di settare il parametro che diminuiva $navi_tot_att del valore delle navi distrutte, e quindi $navi_tot_att era sempre maggiore di zero e il ciclo andava avanti finchè non terminava da solo...

grazie mille :D, se non postavo qua, non mi sarebbe mai passato per la mente di controllare se settavo il valore :p

risposto 9 anni fa
Mr SaJaN
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda