2010-01-03 7 views
1

Dans ma classe de validation, j'ai ceci:Codeigniter: Augmenter le champ de 1 jusqu'à un nombre?

$fields['a_1'] = 'First Question'; 
    $fields['a_2'] = 'Second Question'; 
    $fields['a_3'] = 'Third Question'; 
    $fields['a_4'] = 'Fourth Question'; 

Cela devient vieux - je environ 40 de ceux-ci à écrire, et chaque jeu a correspondant à des règles de validation:

$rules['a_1'] = 'hour'; 
    $rules['a_2'] = 'hour'; 
    ... 

est-il un façon de dire:

$fields['a_' . 1 - 17] = "One, Two" 

Etc ...

Juste curiou s ... sinon, je vais le forcer brutalement.

Répondre

1

vous pouvez essayer cette

$ar=array("One","Two","Three"); 

for($i=1;$i<18;$i++){ 
    $fields["a_".$i]=$ar[$i]; 
} 

$ar contient la liste des valeurs que vous voulez attribuer à l'ordre

0

Pouvez-vous simplement utiliser une boucle foreach avec une plage, comme indiqué sur this page?

foreach (range(1, 17) as $i) { 
    $fields['a_' . $i] = "One, Two"; 
} 

Ou si vous avez besoin de se référer à des valeurs dans un autre tableau:

$other_array = ("some", "other", "values"); 
foreach (range(1, count($other_array)) as $i) { 
    $fields['a_' . $i] = $other_array[$i+1]; 
} 
+0

$ other_array.length en PHP ?? ce deuxième extrait est un hybride de javascript et PHP – ekhaled

+0

Ouais, c'est vrai, merci - n'ont pas utilisé PHP dans quelques années. Pourquoi ils en feraient un mot-clé de langue au lieu d'une méthode d'objet est au-delà de moi. Mais c'est * PHP, LOL. –

+0

aucun probs, aussi pendant que vous éditez ... vous ne définissez pas les tableaux avec des crochets en PHP, vous devriez être $ other_array = array ("some", "other", "values"); – ekhaled

0

Vous pourriez voir si vous ne pouvez pas changer la question. $ foo ['a_1'] est souvent mieux écrit que $ foo ['a'] [1] - cela facilitera la construction et le travail avec eux - foreach($foo['a'] as $item) do_stuff($item); est beaucoup plus facile que quelque chose comme for($i=0; $i<$stop; $i++) do_stuff($foo['a_'.$i]);, et vous pouvez ensuite utiliser le array pour stocker la règle de validation (et toute autre relation) à côté de l'élément lui-même:

$foo['a'] = array(array('fieldname' => 'First Question', 'rule' => 'hour')); 
+0

Qu'est-ce que vous essayez de communiquer est un peu au-dessus de moi ... –

+0

Si vous êtes enclin, vous pouvez rejoindre ## PHP sur irc.freenode.net et me trouver (TML), je serais plus qu'heureux de essayez et expliquez ceci. Je pense vraiment que cela vous ferait gagner du temps et améliorerait la lisibilité globale de votre code. – TML

Questions connexes