2009-06-30 8 views
0

Je ne comprends pas la partie =>.Que fait ce code? (2)

foreach ($_POST[‘tasks’] as $task_id => $v) { 

Que fait-il dans une boucle foreach?

+5

Je vous recommande de lire la documentation en langue avant de poser des questions ici. Vous pouvez trouver la documentation du langage PHP à http://us3.php.net/manual/fr/index.php –

+1

Ceci est une bonne question, car elle est spécifique, claire, et beaucoup de gens voudront connaître la réponse – cobbal

+0

cobbal: C'est vrai, mais c'est terriblement basique. Je ne l'ai jamais déprécié, et je n'ai pas l'intention de le faire, mais je peux voir d'où viennent les downvoters. Il y a certaines choses qui peuvent être mieux traitées dans les documents de langue qu'ici sur SO. –

Répondre

12

Une boucle foreach passe par chaque élément du tableau, un peu comme une boucle for. Dans ce cas, $ task_id est la clé et $ v est la valeur. Par exemple:

$arr = array('foo1' => 'bar1', 'foo2' => 'bar2'); 
foreach ($arr as $key => $value) 
{ 
    echo $key; // Outputs "foo1" the first time around and "foo2" the second. 
    echo $value; // Outputs "bar1" the first time around and" bar2" the second. 
} 

Si aucune clé sont spécifiées, comme dans l'exemple suivant, il utilise les clés d'index par défaut comme ceci:

$arr = array('apple', 'banana', 'grape'); 
foreach ($arr as $i => $fruit) 
{ 
    echo $i; // Echos 0 the first time around, 1 the second, and 2 the third. 
    echo $fruit; 
} 

// Which is equivalent to: 
for ($i = 0; $i < count($arr); $i++) 
{ 
    echo $i; 
    echo $arr[$i]; 
} 
+0

ressemble plus à une carte qu'à un tableau. –

+1

@Pablo: PHP 'arrays' sont des petites choses très utiles, et peuvent être utilisés comme une carte ou un tableau. – Thanatos

+2

En fait, je pense qu'il est préférable de dire que tous les tableaux PHP sont des tableaux associatifs. Par défaut, la clé est une valeur entière basée sur 0, mais vous pouvez en faire tout ce que vous voulez. –

2

En PHP, tous les tableaux sont des tableaux associatifs. Pour chaque paire clé/valeur du tableau, la clé est assignée à $ task_id et la valeur est assignée à $ v. Si vous ne spécifiez pas une autre clé, la clé est un index entier basé sur 0, mais il peut être tout ce que vous voulez, tant que la clé n'est utilisée qu'une fois (essayer de réutiliser cela signifiera remplacer l'ancienne valeur par un nouvelle valeur).

+0

Je ne suis pas sûr que votre compréhension de la syntaxe soit correcte ...? – harto

+0

C'est. $ task_id est la clé et $ v est la valeur mappée à cette clé. Un tableau en PHP est un tableau associatif. –

+0

Bien que oui, mon libellé devrait être amélioré. Laisse-moi faire ça. –

2

Dans le contexte, il ressemble à $_POST['tasks'] est un tableau de une sorte. Que foreach() prend chaque paire clé/valeur dans ce tableau, et place la clé dans $task_id et la valeur dans $v. Par exemple, si vous aviez:

$a['q'] = "Hi"; 
$a[4] = "BLAH"; 

Dans la première itération, $task_id serait 'q' et $v serait "Hi". Dans la deuxième itération, $task_id serait 4, et $v serait "BLAH".

Questions connexes