2011-08-03 13 views
5

私は以下のようなコードを持っていますが、どのタイプのデータ変数$ACTIVITYGROUPS[]がありますか、それをどのように読むのですか?私はprint_r(saprfc_table_read ($fce, "ACTIVITYGROUPS", $i);をしたとき[]の意味は何ですか

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

は、私がどんな区切り文字なしの配列の束を持って、データをexactractする方法がわかりません。誰かがそれが上の文章で何をしているのか教えてくれますか? - 配列の末尾に新しい要素として与えられた引数を置く

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

_少しお待ちください。質問にお答えください。それでは、実際にこの問題について助けを受けるかもしれません。 – Bojangles

+2

[参考 - このシンボルはPHPで何を意味しますか?](http://stackoverflow.com/questions/3737139/reference-what-this-symbol-mean-in-php) – Wrikken

+0

@Wrikken:興味深いことに十分なだけ、そのページ上には*すべての角括弧記号はありません!私はFirefoxでCTRL + Fを使用して見つけることができませんでした。それを更新するような気がする。 –

答えて

22

[]プッシュを意味します。ここでは

print_r(saprfc_table_read ($fce, "ACTIVITYGROUPS", $i);結果は私を与えるものです。つまり、$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[]と同じ効果を有します。


*それはあなたの構文エラーを与える[]を使用して、配列ではない場合:

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

すでに配列を返す saprfc_table_readので
+0

'$ test'がnullの場合、[それは動作します](http://3v4l.org/7qhAD)を指摘したいと思います。しかし、 'array_push()'を押すと、最初のパラメータをnullに設定することはできません(http://3v4l.org/cj5DF)。 –

1

how do I read it ?.

$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

すてきな答え...ありがとう –

+0

また、変数全体を表示するには、 'var_dump($ ACTIVITYGROUPS)'を使用することができます – verybadbug

2

多くの言語では[]表記は、配列の略です。 phpのarray_push()と同じです:末尾に[]という変数の要素をプッシュします。

変数がnullの場合、角括弧は配列の宣言のように考えることができます。

たとえば、プッシュの同じ表記法がJavascriptに適用されます。 $var[] = 'a';のようなものを使用すると、私は上記の通りarray_push()と同じです。ちょうど配列の次の位置を見つけてそこにあなたの値を加えます。

配列はforforeachwhiledo whileで歩いすることができ、あなたはそれがprint_r()またはvar_dump()機能を備えた内容です確認することができます。

0

これは配列ですが、出力には入れ子配列にキーが含まれていないことが示されています。私は彼らが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 
} 
+0

ありがとう...たくさん... –

+0

機能で同じデータを持つ$ ACTIVITYGROUPS []を返すにはどうすればよいですか?私は関数を呼び出した後にそれを読むことができます....事前に感謝 –