2009-09-14 5 views
0

Dans mon contrôleur CakePHP il y a une action nommée saveReport()$attribute_ids est un tableau contenant tous les attributs sélectionnés obtenus à partir du poste Ajax ..Trouver longueur Array incakephp

function saveReport() 
{ 
    echo $this->params['form']['formid']; 
    echo $this->params['form']['reportTitle']; 
    echo $this->params['form']['attr']; 
    $attribute_ids=$this->params['form']['attr']; 
    $comma_separated = explode(",", $attribute_ids); 

    for($i=0;$i<15;$i++) 
    { 
     echo $comma_separated[$i]; 
     echo "  "; 

     $this->data['Report']['title']=$this->params['form']['reportTitle']; 
     $this->data['Report']['form_id']=$this->params['form']['formid']; 
     $this->data['Report']['attr_id']=$comma_separated[$i]; 
     $this->Report->saveAll($this->data); 
    } 
} 

comment identifier la longueur de $comma_separated$comma_separated est un tableau pour que je puisse l'utiliser dans la boucle for maintenant j'ai utilisé 15 par défaut ...

Répondre

4

Si $comma_separated est un tableau, vous pouvez utiliser count pour savoir combien d'éléments il contient.

Par exemple, si vous tableau contient ceci:

$comma_separated[0] = 'glop'; 
$comma_separated[1] = 'hello'; 
$comma_separated[2] = 'world'; 

Vous pouvez utiliser:

$result = count($comma_separated); 
var_dump($result); 

Et obtiendrez:

int 3 


Vous pouvez également utiliser foreach pour itérer sur les éléments de votre tableau, au lieu de pour ; De cette façon, vous n'aurez pas besoin de savoir combien d'éléments il contient.

Par exemple:

foreach ($comma_separated as $element) { 
    var_dump($element); 
} 

Est-ce que vous obtenez:

string 'glop' (length=4) 
string 'hello' (length=5) 
string 'world' (length=5) 
+0

+1 pour Pascal alias l'Homme PHP;) –