../../image/benilogo.gifPHP4 について


PHP の 配列について。

 PHPのマニュアル array( )

さて、配列について実際に作成し、イメージを捕らえる。

<html>
<head><title>PHP-Example array( ) </title></head>
<body>

<H1>php  array( )のテストです。</H1>
<HR>
<PRE>
array( )の使い方<br>
<?php
  $arr = array("abc","def","ghij",DELTA => "bbb","jiro",-5 => "wo"
         ,"jully");
  echo '$arr[0] =',$arr[0],' $arr[1] = ',$arr[1],
       ' $arr[2] =',$arr[2],' $arr[3] = ',$arr[3],"\n";

  print_r($arr);
  var_dump($arr);
  echo "配列要素数=",count($arr);
  echo("\n");
  //直接 $result を覗いてみる。

?>

</PRE>

</body>
</html>

実行結果
array( )の使い方
$arr[0] =abc $arr[1] = def $arr[2] =ghij $arr[3] = jiro
Array
(                     print_r($arr) で表示される。
    [0] => abc      
    [1] => def
    [2] => ghij
    [DELTA] => bbb
    [3] => jiro
    [-5] => wo
    [-4] => jully
)
array(7) {            var_dump($arr) で表示される。
  [0]=>
  string(3) "abc"
  [1]=>
  string(3) "def"
  [2]=>
  string(4) "ghij"
  ["DELTA"]=>
  string(3) "bbb"
  [3]=>
  string(4) "jiro"
  [-5]=>
  string(2) "wo"
  [-4]=>
  string(5) "jully"
}
配列要素数=7      count($arr)で配列要素数


へえ〜!! この結果は面白いね。 かなり自由に構造を作ることが出来る。
まずは、混在して配列を作れるようで 添え字配列と連想配列を ごっちゃにして宣言出来る。
$arr = array(
        "abc",
        "def",
        "ghij",
        DELTA => "bbb",
        "jiro",
        -5 => "wo",
        "jully"
    );
 こんな感じで 宣言と初期化が出来る。
マニュアル
array( [key =>] value
     , ...
     )
// keyは、文字列または非負の
// 整数です。
// valueに制約はありません.

 確かに何を 入れてもいいようです。 基本的には [Key =>] Value となる
 ようです。 [Key =>] を省略すると 添え字配列となり "文字" => value 
 とすると 連想配列となっている。 

 次に[Key =>] を省略すると その前の 添え字 + 1 となっている。
 これ 負の添え字も使えるようで -5 とすれば [-5]の添え字配列が使えて
 いる。
 次に 省略すると -4 となって 常に +1 づつの添え字が付くようです。

 これは PHP 4.3.0 以降は -マイナスの次は 0 になるそうです。

そうすると +1 づつ増えていくであれば、最初の [0] まで追加すると $arr[0] はどういうことになるのか?
消えてしまうと言うか 上書きされるのかな?
 $arr = array(
        "abc",
        "def",
        "ghij",
        DELTA => "bbb",
        "jiro",
        -1 => "wo",
        "jully",
        "zhe",
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        10
       );

実行結果
$arr[0] =abc $arr[1] = def $arr[2] =ghij $arr[3] = jiro $arr[4] =
Array
(
[0] => abc
[1] => def
[2] => ghij
[DELTA] => bbb
[3] => jiro
[-1] => wo
)
array(6) {
[0]=>
string(3) "abc"
[1]=>
string(3) "def"
[2]=>
string(4) "ghij"
["DELTA"]=>
string(3) "bbb"
[3]=>
string(4) "jiro"
[-1]=>
string(2) "wo"
}
配列要素数=6



  これまた面白い結果だ。
  -1 の次は 登録出来ていない! 
    0 までしかダメな様子。


 ちなみに -5 とすると 0 までは
 -4,-3,・・・と登録出来るようです。
    [0] => abc
    [1] => def
    [2] => ghij
    [DELTA] => bbb
    [3] => jiro
    [-5] => wo
    [-4] => jully
    [-3] => zhe
    [-2] => 2
    [-1] => 3



ここまで見ていると 添え字配列では -マスナスにすると +1 づつ足されていき、0 になるまで マイナス添え字は登録出来るようです。
0 は既にあるので 登録出来ないようです。


また、ネストした構造も簡単に作れる。 
<html>
<head><title>PHP-Example array( ) 01 </title></head>
<body>

<H1>php  array( )のテストです。01 </H1>
<HR>
<PRE>
array( )の使い方<br>
<?php
  $arr = array("abc","def","ghij",
              DELTA => array("こんな",
                             "構造".
                             "出来る",
                             mago => array( "C1",
                                            "C2",
                                            "C3"
                                          ),
                             "おまけ"
                             ),
               "bbb",
               "jiro",
               "bbb",
               "jiro",
               "wo"
               );
  echo '$arr[0] =',$arr[0],' $arr[1] = ',$arr[1],
       ' $arr[2] =',$arr[2],' $arr[3] = ',$arr[3],
       ' $arr[4] = ',$arr[4],
       ' $arr["DELTA"][1] =>',$arr["DELTA"] [1],"\n";

  print_r($arr);
  var_dump($arr);
  echo "配列要素数=",count($arr);
  echo("\n");
  //直接 $result を覗いてみる。

?>

</PRE>

</body>
</html>

実行結果
array( )の使い方
$arr[0] =abc $arr[1] = def $arr[2] =ghij 
$arr[3] = bbb $arr[4] = jiro $arr["DELTA"][1] =>構造出来る
Array
(
    [0] => abc
    [1] => def
    [2] => ghij
    [DELTA] => Array
        (
            [0] => こんな
            [1] => 構造出来る
            [mago] => Array
                (
                    [0] => C1
                    [1] => C2
                    [2] => C3
                )

            [2] => おまけ
        )

    [3] => bbb
    [4] => jiro
    [5] => wo
)
array(7) {
  [0]=>
  string(3) "abc"
  [1]=>
  string(3) "def"
  [2]=>
  string(4) "ghij"
  ["DELTA"]=>
  array(4) {
    [0]=>
    string(6) "こんな"
    [1]=>
    string(10) "構造出来る"
    ["mago"]=>
    array(3) {
      [0]=>
      string(2) "C1"
      [1]=>
      string(2) "C2"
      [2]=>
      string(2) "C3"
    }
    [2]=>
    string(6) "おまけ"
  }
  [3]=>
  string(3) "bbb"
  [4]=>
  string(4) "jiro"
  [5]=>
  string(2) "wo"
}
配列要素数=7





こうした構造はいろいろ用途がありそうです。

この配列についてはまだまだいろんな方法がありそうなので この後も、続きそうです。
例えば、こうした配列を動的に生成できるのだろうか? データーを読み込みながら 親=>子=>孫=>ひ孫.... と

なんだ、これはとても簡単に実現出来ますね。 これは面白いことが出来そうです。

表示のときの注意 "" で括ったとき






















目次に戻る

2005/01/10start ********* Last Update 2006/11/12 16:26 JST

(C) Y.Kondou,2005,2006 All Rights, Reserved.
その他、お気づきの点がありましたら連絡先はこちらから