2009-09-14 216 views
0

以我CakePHP的控制器有一個名爲saveReport()一個動作,其中$attribute_ids是一個數組保持從Ajax的交獲得的所有選定的屬性..查找陣列長度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的人;) – 2009-09-14 04:48:09