2011-08-03 18 views
5

Mam kod jak poniżej i nie jestem pewien, jaki typ zmiennej danych ma $ACTIVITYGROUPS[] i jak ją odczytać?Co to jest []

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

Kiedy zrobiłem print_r(saprfc_table_read ($fce, "ACTIVITYGROUPS", $i); Mam kilka tablic bez separatora i nie wiem, jak exactract dane. Czy ktoś może mi powiedzieć, co robi w powyższych zdaniach?

Oto co print_r(saprfc_table_read ($fce, "ACTIVITYGROUPS", $i); wynik daje mi:

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

_ Proszę, proszę, poświęćcie więcej czasu na pytania. Wtedy możesz uzyskać pomoc w tej sprawie. – Bojangles

+2

możliwy duplikat [Odniesienie - Co oznacza ten symbol w PHP?] (Http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – Wrikken

+0

@Wrikken: Interesująco tyle, że * na tej stronie nie ma * żadnych symboli nawiasów kwadratowych!Nie udało mi się znaleźć żadnego użycia CTRL + F w Firefoksie. Wygląda na to, że czas to zaktualizować. –

Odpowiedz

22

[] oznacza Push - umieścić daną tezę jako nowy element na końcu tablicy. Oznacza to, że $ACTIVITYGROUPS jest tablicą *.

$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 

Jak stwierdził docs PHP, array_push ma taki sam efekt jak [].


* Jeśli nie jest tablicą, używając [] daje błąd składni:

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

+0

Chciałbym zaznaczyć, że jeśli '$ test' ma wartość null, [działa] (http://3v4l.org/7qhAD). Jednak pchanie 'array_push()', nie możesz ustawić pierwszego parametru na null] (http://3v4l.org/cj5DF). –

1

how do I read it ?.

Od saprfc_table_read już zwraca tablicę, $ACTIVITYGROUPS będzie tablicą tablic ([] tworzy nowy element tablicy w tablicy $ACTIVITYGROUPS). Aby ją przeczytać, można iteracyjne nad nim z 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

Świetna odpowiedź ... Dzięki –

+0

Również do wyświetlenia całej zmiennej można użyć 'var_dump ($ ACTIVITYGROUPS)' – verybadbug

2

W wielu językach notacja [] stoi na tablicy. Jest to to samo, co php: array_push(): powoduje przesunięcie elementu w zmiennej o numerze [] na końcu.

Jeśli zmienna ma wartość NULL, można rozważyć nawiasy kwadratowe, takie jak deklaracja tablicy.

Ta sama notacja naciśnięcia dotyczy kodu JavaScript, na przykład. Kiedy używam go tak jak $var[] = 'a';, to co się dzieje jest takie samo jak array_push() Mówiłem wyżej. Po prostu znajduje kolejną pozycję w tablicy i dodaje do niej twoją wartość.

Tablicę można chodzić z for, foreach, while, do while i można sprawdzić jego zawartość z print_r() lub var_dump() funkcji.

0

Jest to tablica, ale dane wyjściowe pokazują, że zagnieżdżone tablice nie mają kluczy. Jestem pewien, że mają domyślne klucze 0,1,2,3,4 ... i tak dalej, ale jeśli chcesz je zidentyfikować w jakikolwiek sensowny sposób, sugerowałbym dostosowanie kluczy danych w tablicy .

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

Dzięki ... dużo ... –

+0

Jak mogę zwrócić $ ACTIVITYGROUPS [] z tymi samymi danymi w funkcji? więc mogę go przeczytać po wywołaniu funkcji .... Dzięki z góry –