В чем смысл

У меня есть код, как показано ниже, и я не уверен, какой тип переменной данных $ACTIVITYGROUPS[] имеет и как его читать?

 $ACTIVITYGROUPS[] = saprfc_table_read ($fce, "ACTIVITYGROUPS", $i); 

Когда я сделал print_r(saprfc_table_read ($fce, "ACTIVITYGROUPS", $i); я получил множество массивов без какого-либо seperator и не уверен, как отделить данные. Может кто-нибудь сказать мне, что он делает в вышеприведенных предложениях?

Вот что означает print_r(saprfc_table_read ($fce, "ACTIVITYGROUPS", $i); результат дает мне:

 Array ( [AGR_NAME] => Y:SECURITY_DISPLAY [FROM_DAT] => 20080813 [TO_DAT] => 99991231 [AGR_TEXT] => Security Display - Users & Roles [ORG_FLAG] => C ) Array ( [AGR_NAME] => Y:SECURITY_ADMIN_COMMON [FROM_DAT] => 20080813 [TO_DAT] => 99991231 [AGR_TEXT] => Security Administrator [ORG_FLAG] => C ) Array ( [AGR_NAME] => Y:LOCAL_TRANSPORT [FROM_DAT] => 20090810 [TO_DAT] => 99991231 [AGR_TEXT] => Transport into target client - DEV system only [ORG_FLAG] => ) 

Related of "В чем смысл"

[] означает push- put данный аргумент как новый элемент в конце массива. Это означает, что $ACTIVITYGROUPS – это массив *.

 $arr = array(); $arr[] = 1; // Put 1 in position 0 $arr[] = "a"; // Put "a" in position 1 $arr[] = array() // Put a new, empty array in position 2 

Как указано в документах PHP, array_push имеет тот же эффект, что и [] .


* Если это не массив, использование [] даст вам синтаксическую ошибку:

Предупреждение: нельзя использовать скалярное значение в виде массива в test.php в строке 4

На многих языках обозначение [] обозначает массив. array_push() же самое, что и array_push() php: он толкает элемент в переменной, которая имеет [] в конце.

Если переменная имеет значение null, вы можете рассматривать квадратные скобки как объявление массива.

Например, одно и то же обозначение push применяется к Javascript. При использовании его как $var[] = 'a'; что происходит так же, как array_push() я говорил выше. Просто находит следующую позицию в массиве и добавляет туда свою ценность.

Массив можно использовать for foreach , while , do while и вы можете проверить его содержимое с var_dump() функций print_r() или var_dump() .

как я его прочитал?

Поскольку saprfc_table_read уже возвращает массив, $ACTIVITYGROUPS будет массивом массивов ( [] создает новый элемент массива в массиве $ACTIVITYGROUPS ). Чтобы прочитать его, вы можете перебирать его с помощью foreach:

 $ACTIVITYGROUPS[] = saprfc_table_read ($fce,"ACTIVITYGROUPS",$i); foreach ($ACTIVITYGROUPS as $group) { echo $group['AGR_NAME']; // echos Y:SECURITY_DISPLAY on first iteration echo $group['FROM_DAT']; // echos 20080813 on first iteration // and so on... } 

Это массив, но вывод, который у вас есть, показывает, что ваши вложенные массивы не имеют ключей. Я уверен, что у них есть ключи по умолчанию 0,1,2,3,4 … и так далее, но если вы хотите определить их каким-либо значимым образом, я бы предложил настроить ключи данных в массиве ,

 print_r($ACTIVITYGROUPS); //this should output the whole array print_r($ACTIVITYGROUPS[0]); //this should output just the first element of the array, which is also an array //now you have an 'address' for the array that you understand, now lets output one of the values foreach($ACTIVITYGROUPS as $key => $item){ echo $item['ARG_NAME']; // this will output the ARG NAME from each of the arrays, in order }