• ベストアンサー

array(array()); 多次元配列初期化?

$hoge = array(array());で始まっているコードがあるのですが、 これは何をしているのでしょうか? ・多次元配列の初期化? ・$hoge = array();ではダメなのでしょうか?

  • re97
  • お礼率80% (601/744)
  • PHP
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • cheese014
  • ベストアンサー率85% (12/14)
回答No.1

実際に書いて実行してみると良いです。 $ary = array(array()); print_r($ary); $ary['key'] = 'value'; print_r($ary); ------------------------- $ary = array(); print_r($ary); $ary['key'] = 'value'; print_r($ary); 当然ながら、出力される結果は違いますよね? > これは何をしているのでしょうか? 配列 $ary のキー 0 には空の配列が入っているという意味になりますね。 > $hoge = array();ではダメなのでしょうか? 配列 $ary のキー 0 に「必ず」空の配列が入っている事が期待されるプログラムなら $ary = array(array()); ですが、そうでないなら $ary = array(); で良いです。

re97
質問者

お礼

回答ありがとうございました。 大変参考になりましたー

関連するQ&A

  • Arrayオブジェクトを使った多次元配列の作り方

    こんにちは。 JavaScriptで多次元配列を宣言したいのですが、 配列を宣言するのに使うArrayオブジェクトでの宣言方法がわかりません。 多次元配列を宣言することって、そもそも可能なのでしょうか? どうぞよろしくお願いします

  • foreachで多次元配列にしたくないのですが……

    foreachで多次元配列にしたくないのですが、多次元配列になってしまいます。 なぜでしょうか? ■$hoge Array (  [0] => 3  [1] => 9 ) ■処理 foreach ($hoge as $val){  $result[]= 関数($val); } ■期待している結果 Array (   [0] => Array     (       [id] => 1       [created_at] => 2013-08-01     )   [1] => Array     (       [id] => 2       [created_at] => 2013-08-02     ) ) ■実際の結果 Array (   [0] => Array     (       [0] => Array          (            [id] => 1            [created_at] => 2013-08-01          )     )   [1] => Array     (       [0] => Array          (            [id] => 2            [created_at] => 2013-08-02          )     ) )

    • ベストアンサー
    • PHP
  • 多次元配列の並び変えについて

    <?php $food["a"]["1"]= "hoge1"; $food["b"]["2"]= "hoge2"; $food["c"]["3"]= "hoge3"; $food["d"]["4"]= "hoge4"; ?> 上記の配列について、1,2,3,4のキーの順番でソートしたいのですが、うまく出来ません。 一次元配列だと簡単なのですが、二次元配列だとどうやったらよいのでしょうか? array_multisortを使うと、多次元でも並び変えはできると他のサイトで読みましたが、 これは結局値でソートしてますよね? 私は純粋にキーのみでソートしたいのですが、色々調べているのですがどうも複雑なプログラムを 書かないとできないような気がしてきました。

    • 締切済み
    • PHP
  • 多次元配列を連想配列へ変換したい

    以下のような多次元配列を、 Array ( [0] => Array     (     [0] => Array       (         [id] => 3         [hoge_id] => 15       )     ) [1] => Array   (     [0] => Array       (         [id] => 9         [hoge_id] => 15       )   ) [2] => Array   (     [0] => Array       (         [id] => 18         [hoge_id] => 15       )   ) [3] => Array   (     [0] => Array       (         [id] => 22         [hoge_id] => 15       )     [1] => Array       (         [id] => 22         [hoge_id] => 15       )     [2] => Array       (         [id] => 22         [hoge_id] => 15       )   ) ) 下記のような連想配列へ変換したいです Array (     [0] => Array       (         [id] => 3         [hoge_id] => 15       )     [1] => Array       (         [id] => 9         [hoge_id] => 15       )     [2] => Array       (         [id] => 18         [hoge_id] => 15       )     [3] => Array       (         [id] => 22         [hoge_id] => 15       )     [4] => Array       (         [id] => 22         [hoge_id] => 15       )     [5] => Array       (         [id] => 22         [hoge_id] => 15       ) )

    • ベストアンサー
    • PHP
  • 3次元配列を1次元配列に

    例えば2次元配列だと, array[row*i+j] = a[n]; といったように1次元に直すことができますよね? 同様に3次元配列を1次元配列にしたい場合には arrayの中はどのような式をつかえばいいのでしょうか。 よろしくお願いします。

  • 2次元配列を多次元配列にする。

    2次元配列を多次元配列にする。 PHP5で 2次元目はすべて同じキーの2次元配列を 2次元目のキーごとの内容を共通項にまとめて、 多次元配列にする方法を教えてください。 キーの数は膨大なので、関数の再帰呼び出し で、きれいに処理したいのです。 説明文では説明しきれないので、 やりたいことは↓の通りです。 array[0] = array([one] => "あ", [twe] => "う" [three] => "き"); array[1] = array([one] => "あ", [twe] => "う" [three] => "く"); array[2] = array([one] => "あ", [twe] => "え" [three] => "け"); array[3] = array([one] => "あ", [twe] => "え" [three] => "こ"); array[4] = array([one] => "い", [twe] => "お" [three] => "さ"); array[5] = array([one] => "い", [twe] => "お" [three] => "し"); array[6] = array([one] => "い", [twe] => "か" [three] => "す"); array[7] = array([one] => "い", [twe] => "か" [three] => "せ"); という配列があったら、これを↓のようにしたいです。 array( [あ] => array( [う] => array ("き", "く") [え] => array ("け", "こ") ) [い] => array( [お] => array ("さ", "し") [か] => array ("す", "せ") )   ) どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 多次元配列は配列の配列である

    Java勉強中なんですが、参考書を読んでいて「多次元配列は、実際には配列の配列である。つまり、2次元配列(array[][])がある場合、実際にはこれをarray[0]、array[1]、array[2]、といった1次元配列に配列として扱う事ができる。」と書いてあり、例題で、 double array[][] = new double[5][]; array[0] = new double[500]; array[0] = new double[400]; array[0] = new double[300]; array[0] = new double[200]; array[0] = new double[100]; と書いてありました。これについてのこれ以上の説明はなく、理解できなくて困っています。ご教授宜しくお願いいたします。

    • ベストアンサー
    • Java
  • 配列の初期化を実施するのはどんな時?

    配列の初期化を実施するのはどんな時でしょうか? 例えば、下記では初期化を実施する必要があるでしょうか? $hoge = array("foo", "bar"); また、配列の初期化を行う方法は、下記以外にもあるのでしょうか? $hoge = array();

    • ベストアンサー
    • PHP
  • PHPで多次元配列を一度に処理するには

    例えば、 array(  [hoge1-1] => hoge1-1_value  [hoge1-2] => array(   [hoge2-1] => hoge2-1_value   [hoge2-2] => hoge2-2_value   [hoge2-3] => array(    [hoge3-1] => hoge3-1_value   )  ) ) のような多次元配列で、すべてのvalueに同じ処理を施すには foreachのなかにforeachを書いて処理するしかないのでしょうか。 もっと単純に、すべてのファイルを一度に処理できるようにする方法は ないでしょうか?

    • ベストアンサー
    • PHP
  • 多次元配列

    初歩的な質問ですみません。 PHPプログラミングでの質問です。 仮に、多次元配列Aに、 Array( [0] => Array ( [0] => 6 ) [1] => Array ( [0] => 2 [1] => 1 ) [2] => Array ( [0] => 0 [1] => 5 [2] => 4 ) ) 多次元配列Bに、 Array( [0] => Array ( [0] => りんご ) [1] => Array ( [0] => ぶどう [1] => パイナップル ) [2] => Array ( [0] => みかん [1] => すいか [2] => メロン ) ) のように値が入っている場合、配列Aの値を参照して 値の大きいものから順に、それに対応する配列Bの値を取り出し、 あたらしい配列Cに代入する処理の書き方を教えて下さい。 上記の例ですと、配列Cが、 Array ( [0] => りんご [1] => すいか [2] => メロン [3] => ぶどう [4] => パイナップル [5] => みかん ) となるようにしたいです。 よろしくお願いします。 長文失礼しました。

    • ベストアンサー
    • PHP