2012-04-12 3 views
0

Как подсчитать элементы вложенного массива? Я хочу подсчитать элементы $ student_info ['Aptitude'].php cakephp: как подсчитать элементы вложенного массива

Я попытался следующие, и я получаю неопределенный индекс на следующий код:

else if (count($student_info["Aptitude"])==0){ //no records for report card 
     $this->Session->setFlash('Your child is a new student in our school. 
      He/She doesn\'t have records for a report card yet.'); 
      $this->redirect(array('controller'=>'pages','action'=>'home')); 

Склонность является массивом в пределах $ student_info, который имеет 4 массивов

var_dump ($ student_info) производит следующие вывод. Массив Aptitude находится на последней строке. Он не имеет никаких элементов:

array(1) { 
    [0]=> array(4) { 
     ["Student"]=> array(10) { 
      ["id"]=> string(2) "20" 
      ["name"]=> string(15) "Uma Palaniappan" 
      ["gender"]=> string(6) "Female" 
      ["dob"]=> string(10) "2007-04-26" 
      ["created"]=> string(19) "2011-12-29 10:14:03" 
      ["modified"]=> string(19) "2011-12-29 10:14:03" 
      ["merry_class_id"]=> string(1) "3" 
      ["merry_parent_id"]=> string(2) "25" 
      ["term1_comments"]=> NULL 
      ["term2_comments"]=> NULL 
     } 
     ["MerryParent"]=> array(14) { 
      ["id"]=> string(2) "25" 
      ["initial"]=> string(2) "Mr" 
      ["name"]=> string(13) "Palaniappan K" 
      ["username"]=> string(7) "kpalani" 
      ["email"]=>string(20) "[email protected]" 
      ["password"]=> string(40) "43f5e1298f3b2478a9cd4ab7c6f5f703380dbcc9" 
      ["landline"]=> string(12) "044-77223399" 
      ["mobile"]=> string(10) "9860662309" 
      ["address"]=> string(15) "44 Megala Chowk" 
      ["state_id"]=> string(1) "6" 
      ["city_id"]=> string(3) "103" 
      ["postal_code"]=> string(6) "384733" 
      ["created"]=> string(19) "2011-12-29 10:14:03" 
      ["modified"]=> string(19) "2011-12-29 10:52:23" 
     } 

     ["MerryClass"]=> array(2) { 
      ["id"]=> string(1) "3" 
      ["class_name"]=> string(3) "LKG" 
     } 
     ["Aptitude"]=> array(0) { 
     } 
    } 
} 

спасибо.

+0

Лол, надеюсь, что это тестовые данные или г-Palaniappan K может получить некоторые необычные телефонные звонки. –

+0

Конечно, это тестовые данные. :) – vaanipala

ответ

1
else if (count($student_info[0]["Aptitude"])==0){ //no records for report card 
    $this->Session->setFlash('Your child is a new student in our school. 
     He/She doesn\'t have records for a report card yet.'); 
     $this->redirect(array('controller'=>'pages','action'=>'home')); 

вы забыли указатель [0].

1

Использование

if (count($student_info[0]["Aptitude"])==0) 

вместо этого. Пожалуйста, отформатируйте свой примерный код самостоятельно в следующий раз. Вы могли бы легко заметить эту ошибку самостоятельно.

Рассмотрите возможность использования xdebug, чтобы получить более читаемый выход для var_dump.

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