2009-09-14 152 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