2009-09-14 2 views
0

В моем контроллере CakePHP есть действие по имени saveReport() где $attribute_ids является массив, содержащий все выбранные атрибуты, полученные от должности Ajax ..Finding Длина массива 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); 
    } 
} 

как определить длину $comma_separated вот где $comma_separated это массив, так что я могу использовать его в цикле for, теперь я использовал по умолчанию 15 ...

ответ

4

Если $comma_separated - это массив, вы можете использовать count, чтобы узнать, сколько его элементов содержит.

Например, если массив содержит это:

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

Вы можете использовать:

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

И получите:

int 3 


Вы можете также использовать foreach для итерации по элементам вашего массива, вместо для ; таким образом, вам не нужно будет знать, сколько элементов оно содержит.

Например:

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

поможет вам:

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

+1 Паскаля ака PHP человека;) –

Смежные вопросы