- ベストアンサー
多次元配列は配列の配列である
noname#16216の回答
実際に図を書いたほうが分かりやすいのではないでしょうか? 通常の1次元配列はこんな感じです。 a[0] a[1] a[2] a[3] □ □ □ □ で、2次元配列はこんな感じです。 a[][0] a[][1] a[][2] a[0][] □ □ □ ← ※ a[1][] □ □ □ ※の行だけを見ると、a[0]という配列の1つに対して、a[0][1]~a[0][2]という配列が存在するという形になっています。 これが2次元配列は、ary[0]…といった1次元配列の配列として扱うことができるという意味になります。 これでどうでしょうか?
関連するQ&A
- 二次元配列
質問失礼します。 二次元配列の練習中で、 nijigen = new Array(); nijigen[0] = new Array(0,0,0,0); nijigen[1] = new Array(0,0,0,0); nijigen[2] = new Array(0,0,0,0); nijigen[3] = new Array(0,0,0,0); という配列を作りました。 そして、その配列と同じ配置にされたボタンを押すと、その位置の配列の数値に「1」が代入されるというものです。 そこでですが、「配列の内容が全て1になった時」を検知出来るようにしたいのですが、どのようにすればよいのでしょうか。 よろしくお願いします。 //↓こうなった時に検知したいのです nijigen = new Array(); nijigen[0] = new Array(1,1,1,1); nijigen[1] = new Array(1,1,1,1); nijigen[2] = new Array(1,1,1,1); nijigen[3] = new Array(1,1,1,1);
- ベストアンサー
- Flash
- 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
- jspでの二次元配列
こんにちは。初めて質問させていただきます。よろしくお願いします。 現在javaで作ったプログラムをjspでも使えるようにしようと考えているのですが、 二次元配列がうまくjspで反映されず困っています。 jspに関してはほとんど無知で一から勉強している次第です。 そのためなるべく簡単に、と思い 以下のプログラムを、<% %>の間に入れるだけで動かせないかと思ったのですが エラーが出てしまいました。一次元の配列ならばできたのですが... ちなみに以下のプログラムはcsvファイルを読み込み、 多次元配列に格納していくというものです。 稚拙なプログラムで申し訳ありません... どなたかご教授いただければ幸いです。 import java.io.*; import java.util.StringTokenizer; import java.util.ArrayList; class Dog{ public static void main(String args[]) throws IOException{ String csv = "dognum.csv"; BufferedReader br = new BufferedReader(new FileReader(csv)); String[][] array = new String[100][]; int i = 0; while (true) { String line = br.readLine(); if(line==null) break; array[i] = line.split(","); i++; } for (i = 0; i < 101; i++) { for (int j = 0; j < array[i].length; j++) { System.out.println("["+i+"]["+j+"] = " + array[i][j]); } } } }
- 締切済み
- Java
- 多次元配列の動的メモリ
1次の配列aの動的メモリは例えば 「double *a; int num = 3; //配列の数 a = new double [3];」 などとすれば確保できることは分かるのですが、 二次元配列など、多次元配列の動的メモリは どのようにすれば確保できるのですか?
- 締切済み
- C・C++・C#
- 多次元配列を2次元の連想配列で表したい
PHP初心者です。 $category = array( array( 'ライフ' ), array( 'デジタルライフ', array( '携帯・PHS' ), array( 'ワンセグ放送' ) ), array( '趣味', array( 'AV機器', array( 'オーディオ' ), ), ), ); このような多次元配列を $new_category = array( array( 'id'=> '1', 'parent_id' => '-', 'name' => 'ライフ', ), array( 'id'=> '2', 'parent_id' =>'-', 'name' => 'デジタルライフ', ), array( 'id'=> '3', 'parent_id' => '2', 'name' => '携帯・PHS', ), array( 'id'=> 4, 'parent_id' => '2', 'name' => 'ワンセグ放送', ), array( 'id'=> 5, 'parent_id' => '-', 'name' => '趣味', ), array( 'id'=> '6', 'parent_id' => '5', 'name' => 'AV機器', ), ); このような二次元配列に変換したいです。 parent_idを入れておく配列を作って、階層が深くなったら前の要素のIDを配列に入れ、浅くなったら配列の末尾の要素を消去する…みたいなことを考えてあれこれやってみたのですが、なかなかうまくいきません。 何か良い方法がありましたら、教えていただけるとありたがいです。 よろしくお願い致します。
- ベストアンサー
- PHP
- 多次元配列を、1次元の配列にする関数を書いてください。
以下のように、多次元配列の配列をペチャンコにする関数(array_flatten)ってどうかきますか? <?php $arr[0] = 'a'; $arr[1][0] = 'b'; $arr[1][1][0] = 'c'; $arr[1][1][1][0] = 'd'; $arr[1][1][1][1][0] = 'e'; $arr[1][1][1][2] = 'f'; $arr[1][1][2] = 'g'; $arr[1][2] = 'h'; $arr[2] = 'i'; function array_flatten($arg){ 処理; } $new_arr = array_flatten($arr); print_r($new_arr); ?> ↓ Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h [8] => i ) ※関数のなかで、ペチャンコの配列を格納するための新しい配列を宣言すると、 同関数を再帰的に呼び出したら、その配列が初期化されますよね?
- ベストアンサー
- PHP
- 二次元配列について
こんにちは。いつもお世話になっております。 JavaScriptで二次元配列(配列の入れ子)を作ろうとしています。 ソースは下記のとおりです。 var menu = new Array("朝食","昼食","夕食"); menu[0] = new Array(); menu[0][0] = "コーヒー"; menu[0][1] = "牛乳"; menu[1] = new Array(); menu[1][0] = "サラダ"; menu[1][1] = "サンドイッチ"; menu[2] = new Array(); menu[2][0] = "天ぷら"; menu[2][1] = "刺身"; document.write(menu[0],"は",menu[1][0] + "<br>" ); 最後のwriteメソッドを使用して 「昼食はサラダ」と表示したいのですが「コーヒー,牛乳はサラダ」 になってしまいます。 どう記述すればいいでしょうか?ネットでいろいろ検索してみましたが 分かりませんでした。 よろしくお願い申し上げます。
- ベストアンサー
- JavaScript
- 2次元配列の動的確保について、アドバイス下さい
今、大容量の2次元配列を造りたいので、 メモリの動的確保の勉強をしてました。 昔は、サイズ分mallocで確保して、配列の各行の先頭アドレスを それぞれ対応させていって、行列としてポインタを扱えるようにしてたのですが、 調べていると、もっと簡単に2次元配列のメモリを確保できるみたいなので、その方法を調べていました。 その中で、 if(!(ptr = (int (*)[RETSU])calloc(GYOU*RETSU, sizeof(int)))) こういう例題を見つけたんですけど、 これの、(*)[RETSU])のところが、理解できません。 これは何をしているのでしょうか? どういう言葉で検索すれば、説明が出てくるのか解らなかったので質問させて頂きました。 この(*)[RETSU]の感じの書き方をすると、結構簡単にメモリ確保できるみたいなので、解説、または説明サイトなど教えて頂けると助かります。 または、例題を書いていただけるとスゴク助かります。 ちなみに私が造りたいのは、 100行300000列 ほどの配列です。 是非、よろしくお願いします。
- 締切済み
- C・C++・C#
- ArrayListに多次元配列
ArrayListに多次元配列の変数を格納したのですが、取り出し方がわからず困っています。 ----------------------------------------------- String[][] str = {{"aaa","bbb","ccc","ddd","eee","fff"}, {"aaa","bbb","ccc","ddd","eee","fff"}, }}; ArrayList array = new ArrayList(); array.add(str[0]); array.add(str[1]); ----------------------------------------------- 上記の場合で、str[0][2];を取得する方法がわかりません。 java初心者なのでおかしな質問かもしれませんが、宜しくお願いします。
- ベストアンサー
- Java
- JavaScriptで2次元配列を扱う方法
C言語を少しだけやっていました。 JavaScriptで2次元配列作りたいのですが、上手くいきません。 var array[5][5]; array[0][0] = 21; document.write(array[0][0]); ↑を実行しても「21」と表示されません。 new array()とか色々試しましたが上手くいかないので質問させていただきました。 教えてください!
- ベストアンサー
- JavaScript