配列 / 連想配列 / 多次元配列 生成方法比較

配列

配列

 状態:-  閲覧数:5,479  投稿日:2010-04-26  更新日:2014-09-29  
配列 / 連想配列 / 多次元配列 生成方法比較
・配列
次元 パターンA パターンB パターンC
1
$a = array("apple", 46, "grape");
$a[0] = "apple";
$a[1] = 46;
$a[2] = "grape";
$a[] = "apple";
$a[] = 46;
$a[] = "grape";
2
$a = array(
0 => array(
0 => 12,
1 => 23,
2 => 25
),
1 => array(
0 => 1,
1 => 2,
2 => "海"
)
);
$a[0][0] = 12;
$a[0][1] = 23;
$a[0][2] = 25;

$a[1][0] = 1;
$a[1][1] = 2;
$a[1][2] = "海";
$a[0][] = 12;
$a[0][] = 23;
$a[0][] = 25;

$a[1][] = 1;
$a[1][] = 2;
$a[1][] = "海";
・連想配列
次元 パターンA パターンB
1
$a = array("日本" => 46);
$a["日本"] = 46;
2
$a = array(
 "日本" => array( "宮城" => 12, "東京" => 23, "名古屋" => 25),
 "アメリカ" => array( "ワシントン" => 1, "ハワイ" => 2, "グアム" => "海")
);
$a["日本"]["宮城"] = 12;
$a["日本"]["東京"] = 23;
$a["日本"]["名古屋"]  =25;

$a["アメリカ"]["ワシントン"]  = 1;
$a["アメリカ"]["ハワイ"] = 2;
$a["アメリカ"]["グアム"]  = "海";


「添え字(インデックス)」と「要素(値)」で、構成されている

 閲覧数:989 投稿日:2010-04-26 更新日:2014-10-06 

1次元配列


パターンA
$a = array("apple", 46, "grape");
print_r($a);

Array
(
   [0] => apple
   [1] => 46
   [2] => grape
)


パターンB
$a = array();//配列の初期化
$a[0] = "apple";
$a[1] = 46;
$a[2] = "grape";
print_r($a);

Array
(
   [0] => apple
   [1] => 46
   [2] => grape
)


パターンC
$a = array();//配列の初期化
$a[] = "apple";
$a[] = 46;
$a[] = "grape";
print_r($a);

Array
(
   [0] => apple
   [1] => 46
   [2] => grape
)



2次元配列


パターンA
$a = array(
 0 => array(
   0 => 12,
   1 => 23,
   2 => 25
 ,
 1 => array(
   0 => 1,
   1 => 2,
   2 => "海"
 
);
print_r($a);

Array
(
   [0] => Array
       (
           [0] => 12
           [1] => 23
           [2] => 25
       

   [1] => Array
       (
           [0] => 1
           [1] => 2
           [2] => 海
       

)


パターンB
$a = array();//配列の初期化
$a[0][0] = 12;
$a[0][1] = 23;
$a[0][2] = 25;

$a[1][0] = 1;
$a[1][1] = 2;
$a[1][2] = "海";

print_r($a);

Array
(
   [0] => Array
       (
           [0] => 12
           [1] => 23
           [2] => 25
       

   [1] => Array
       (
           [0] => 1
           [1] => 2
           [2] => 海
       

)


パターンC
$a = array();//配列の初期化
$a[0][] = 12;
$a[0][] = 23;
$a[0][] = 25;
 
$a[1][] = 1;
$a[1][] = 2;
$a[1][] = "海";

print_r($a);

Array
(
   [0] => Array
       (
           [0] => 12
           [1] => 23
           [2] => 25
       

   [1] => Array
       (
           [0] => 1
           [1] => 2
           [2] => 海
       

)



1次元連想配列


パターンA
$a = array("日本" => 46);
print_r($a);

Array
(
   [日本] => 46
)


パターンB
$a = array();//配列の初期化
$a["日本"] = 46;
print_r($a);

Array
(
   [日本] => 46
)



2次元連想配列


パターンA
$a = array(
 "日本" => array( "宮城" => 12, "東京" => 23, "名古屋" => 25),
 "アメリカ" => array( "ワシントン" => 1, "ハワイ" => 2, "グアム" => "海")
);
print_r($a);

Array
(
   [日本] => Array
       (
           [宮城] => 12
           [東京] => 23
           [名古屋] => 25
       

   [アメリカ] => Array
       (
           [ワシントン] => 1
           [ハワイ] => 2
           [グアム] => 海
       

)


パターンB
$a = array();//配列の初期化

$a["日本"]["宮城"] = 12;
$a["日本"]["東京"] = 23;
$a["日本"]["名古屋"] =25;

$a["アメリカ"]["ワシントン"] = 1;
$a["アメリカ"]["ハワイ"] = 2;
$a["アメリカ"]["グアム"] = "海";

print_r($a);

Array
(
[日本] => Array
(
[宮城] => 12
[東京] => 23
[名古屋] => 25
)

[アメリカ] => Array
(
[ワシントン] => 1
[ハワイ] => 2
[グアム] => 海
)

)




「添え字(インデックス)」と「要素(値)」で、構成されている

添え字(インデックス)は省略可能。省略されると自動でセットされる(既存の添え字の最大値+1)。
また、添え字には文字列も指定可能(連想配列)。


   $signal = array("red", 3 => "blue", "yellow");//2つ目の要素にのみ添え字(「3」)を設定
   
   foreach($signal as $key => $val){//添え字の一部を省略した場合、省略した要素の添え字は、その前の要素の添え字に「+1」した値になる。つまり、3番目の添え字は「4」となる。要素数は「3」。添え字の数字は要素の背番号に過ぎない
       echo $key." : ".$val."
";
   }
   
   echo count($signal);

▼結果

  /demo/array.html





   $signal = array(-6 => "red", "blue", "yellow");//添え字に負の数を指定すると、次以降の添え字は「0」から始まる整数となる
   
   foreach($signal as $key => $val){
       echo $key." : ".$val."
";
   }

▼結果

  /demo/array2.html


多次元配列

コメント投稿(ログインが必要)



週間人気ページランキング / 7-18 → 7-24
順位 ページタイトル抜粋 アクセス数
1 PHP用語 7
2 マジックメソッド(クラスとオブジェクト) カテゴリー 4
3 遭遇例1.存在する間違ったデータベース名を指定 3
3 リファレンス基本操作は3通り 3
3 ログイン 3
4 プログラムの基本三構造 | 制御構造 2
4 You currently have Essential access which includes access to Twitter API v2 endpoints only. If you need access to this endpoint, you’ll need to apply for Elevated access via the Developer Portal. | Twitter API(エラーメッセージ) 2
4 htmlspecialchars / htmlentities / addslashes / mysql_real_escape_string / mysqli_real_escape_string | セキュリティ 2
4 デフォルト引数 | 関数 2
4 Fatal error: Uncaught Error: Class 'Mecab_Tagger' not found in /var/www/★★.php:☆☆ | Fatal error(エラーメッセージ) 2
4 CodeIgniter 2
5 コンストラクタ デストラクタ | クラスとオブジェクト 1
5 PHPでcurlを使用するためには?/ 2.オプション設定 / curlでPOST送信 1
5 「添え字(インデックス)」と「要素(値)」で、構成されている 1
5 サニタイズ | セキュリティ 1
5 演算子 1
5 Strict Standards: DateTime::__construct() [function.DateTime---construct]: It is | エラーメッセージ 1
5 型の相互変換 | 型 1
5 Doctrine | データベース関連 1
5 トレイト | クラスとオブジェクト 1
2026/7/25 5:05 更新