У меня есть код, как показано ниже, и я не уверен, какой тип переменной данных $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] => )
[]
означает 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 }