Нахождение длины массива incakephp - PullRequest
0 голосов
/ 14 сентября 2009

В моем контроллере cakePHP есть действие с именем saveReport(), где $attribute_ids - это массив, содержащий все выбранные атрибуты, полученные из сообщения Ajax.

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 по умолчанию ...

1 Ответ

4 голосов
/ 14 сентября 2009

Если $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 для перебора элементов вашего массива вместо for; Таким образом, вам не нужно будет знать, сколько элементов в нем содержится.

Например:

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

Получит ли ты:

string 'glop' (length=4)
string 'hello' (length=5)
string 'world' (length=5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...