2011-08-03 17 views
5

Tengo un código como el siguiente y no estoy seguro de qué tipo de datos tiene la variable $ACTIVITYGROUPS[] y cómo la leo?¿Cuál es el significado de []

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

Cuando lo hice me dieron print_r(saprfc_table_read ($fce, "ACTIVITYGROUPS", $i); montón de matrices sin ningún tipo de separador y no está seguro de cómo exactract los datos. ¿Puede alguien decirme qué hace en las oraciones anteriores?

Esto es lo que me da resultado 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] => 
) 
+4

_Por favor, por favor, dedique un poco más de tiempo a sus preguntas. Entonces, en realidad podrías obtener ayuda con este asunto. – Bojangles

+2

posible duplicado de [Referencia - ¿Qué significa este símbolo en PHP?] (Http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – Wrikken

+0

@Wrikken: Curiosamente ¡Basta, no hay * símbolos de corchetes en absoluto * en esa página!No pude encontrar ninguna usando CTRL + F en Firefox. Parece que es hora de actualizarlo. –

Respuesta

22

[] significa empuje - poner el argumento dado como un nuevo elemento en el final de la matriz. Eso significa que $ACTIVITYGROUPS es una matriz *.

$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 

Como se ha indicado por la documentación de PHP, array_push tiene el mismo efecto que [].


* Si no es un array, usando [] le dará un error de sintaxis:

Warning: Cannot use a scalar value as an array in test.php on line 4

+0

Me gustaría señalar que si '$ test' es nulo, [funciona] (http://3v4l.org/7qhAD). Sin embargo, presionando con 'array_push()', usted [no puede establecer el primer parámetro en nulo] (http://3v4l.org/cj5DF). –

1

how do I read it ?.

Desde saprfc_table_read ya se devuelve una matriz, $ACTIVITYGROUPS habrá una matriz de matrices ([] crea un nuevo elemento de matriz en la matriz $ACTIVITYGROUPS). Para leerlo, puede iterar sobre ella con 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

Gran respuesta ... Gracias –

+0

También para mostrar toda la variable puede usar 'var_dump ($ ACTIVITYGROUPS)' – verybadbug

2

En muchos lenguajes de la notación [] significa una matriz. Es lo mismo que php array_push(): empuja un elemento en la variable que tiene [] al final.

Si la variable es nula, puede considerar los corchetes como una declaración de una matriz.

La misma notación de push se aplica a Javascript, por ejemplo. Al usarlo como $var[] = 'a';, lo que sucede es lo mismo que array_push(). Estaba hablando arriba. Solo encuentra la siguiente posición en la matriz y agrega allí su valor.

Una matriz se puede caminar con for, foreach, while, do while y puedes leer su contenido con print_r() o var_dump() funciones.

0

Es una matriz, pero el resultado que tiene muestra que las matrices anidadas no tienen claves. Estoy seguro de que tienen las teclas predeterminadas de 0,1,2,3,4 ... y así sucesivamente, pero si quieres identificarlas de una manera significativa, te sugiero que ajustes las claves de los datos dentro de la matriz .

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 
} 
+0

Gracias ... mucho ... –

+0

¿Cómo devuelvo $ ACTIVITYGROUPS [] con los mismos datos en Función? para que pueda leerlo después de llamar a la función ... Gracias de antemano –

Cuestiones relacionadas