- 締切済み
二次元配列の基礎の基礎
二次元配列という概念を知って興味を持ち、 ちょっと自分でやってみたのですが、どうしてもうまくいきません。(T-T) php.netやgoogleであちこち2時間以上見てまわりましたが、 あまりに初歩的過ぎるのか、難しいものばかりで撃沈しました...。 お手数ですが、どうぞよろしくお願いいたします。 <?php $fruits[] = array("orange", "みかん"); $fruits[] = array("apple", "りんご"); $fruits[] = array("grape", "ぶどう"); print_r($fruits); // 出力結果 // Array ( [0] => Array ( [0] => orange [1] => みかん ) [1] => Array ( [0] => apple [1] => りんご ) [2] => Array ( [0] => grape [1] => ぶどう ) ) // 以下でぶどうと出したいのですが、Array[1]と表示されてしまいます。 echo "$fruits[2][1]"; ?>
- r_bel
- お礼率95% (81/85)
- PHP
- 回答数1
- ありがとう数3
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- i2719
- ベストアンサー率35% (11/31)
echo $fruits[2][1]; 普通上記のように書くのでは。
関連するQ&A
- 多次元配列を[キー:値]の形でランダム表示に
<?php $fruit = array( 'apple' => array('ふじ','ジョナゴールド'), 'orange' => array('みかん','バレンシア'), 'grape' => array('巨峰','マスカット') ); foreach ($fruit as $key => $value) { foreach ($value as $key2 => $value2) { echo '<p>' . $key . ' : ' . $value2 . '</p>' . "\n"; } } ?> 上記コードにて多次元配列をループさせて以下の様に表示させています。 apple : ふじ apple : ジョナゴールド orange : みかん orange : バレンシア grape : 巨峰 grape : マスカット これを下の様にシャッフルした形でランダムに表示させたいと思い、自分なりに試行錯誤してみたのですが、思うような結果を出す事が出来ずに悩んでいます。 何か良い方法がありましたらアドバイスを頂ければと思います。 よろしくお願い致します。 grape : 巨峰 apple : ふじ orange : みかん grape : マスカット orange : バレンシア apple : ジョナゴールド
- ベストアンサー
- PHP
- 連想配列に追加ってできるン?
$fruit = array("Apple" => "りんご", "Orange" => "みかん", "Grape" => "ぶどう"); これに"EVA" => "エヴァンゲリオンの略"を追加したいんだけど、色々やったけどわからン。 どうしたらできるン?
- ベストアンサー
- 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
- 2次元の連想配列を検索できません。
以下の2次元配列でstatusが2の配列(orange)だけを 返したいのですがPHPでどう組めば実現できるでしょうか? Array ( [orange] => Array ( [start_date] => 20041122 [status] => 2 ) [apple] => Array ( [start_date] => 20041123 [status] => 1 ) ) foreach()とかやってみているのですが、はまってます(T_T)
- ベストアンサー
- PHP
- PHPで配列から値を取得したい
PHP勉強中の初心者です。 初歩的な質問なのですが以下のような配列から「りんご」、「バナナ」などの値をすべて取得するにはどうすればいいのでしょうか? Array ( [input] => 自転車 [status] => 0 [result] => Array ( [0] => Array ( [0] => りんご ) [1] => Array ( [0] => バナナ ) [2] => Array ( [0] => ミカン ) [3] => Array ( [0] => オレンジ ) [4] => Array ( [0] => ブドウ ) [5] => Array ( [0] => パイナップル ) ) )
- ベストアンサー
- PHP
- 配列のインデックスを入力した値と比較して出力する方法
以下のようなことをしたいのですが、いい方法が思いつきません $input = " リンゴあめ "; //ユーザーが入力する情報で全角・半角スペース、ひらがな・かたかな混在もあり得る $test = array( 'ミカン ゼリー' => 'orange', 'ブドウ アイス' => 'grape', 'リンゴ アメ' => 'apple', ); $inputの入力値と$testa_arrayのインデックスキーそれぞれを、mb_convert_kana で全角カタカナ変換、ereg_replaceで全角・半角スペース空白削除を行った状態で比較して、 マッチしていれば配列の値を返すようにしたいのですが、php4の環境の関数しか使えません。 上の場合だとappleが出力できればいいのですが、いい方法があれば教えてください。
- 締切済み
- PHP
- 配列の要素(value)に、変数を格納するのはダメ??
PHP5の環境で作業をしています。 $apple = "りんご"; $orange = "みかん"; $banana = "バナナ"; $array_test = array("$apple","$orange""$banana"); print_r($array_test); /*------------- 結果: Array ( [0] => りんご [1] => みかん [2] => バナナ ) -------------*/ すごく初歩的なことをお聞きしているかもしれませんが、 配列の要素に「変数」を入れるのはダメでしたでしょうか? 検索して探してみても、なかなか出てこないので…。 (検索の仕方が悪いだけでしょうか。) 意外に見つからないので、驚いています。 実際、上のコードで試すと、問題なく希望通りの結果を返してくれます。 でも、これは、作法的にはよろしくないのでしょうか?
- ベストアンサー
- PHP
- 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
- 2次元配列から1次元配列へのデータ読み込み方法をお尋ねします。
いつもお世話になります。 readtest.csvというCSVファイルを作り、データを次のように入れています。 a,apple,301,23 b,orange,518,47 c,grape,278,19 d,banana,189,36 この3列目のデータを取り出して1次元配列に入れるため、DBtest.phpを次のように書きました。 01: <?php 02: $Data=file("../readtest.txt"); 03: for ( $i = 0; $i < sizeof( $Data ); $i++ ) { 04: $line=explode(",",$Data[$i]); 05: echo $line[2]; // 301518278189 06: // $xdata=implode(",", $line[2]); 07: } 08: ?> この実行結果は、「301518278189」となります。なぜコンマが入らないのでしょうか? 5行目をコメントアウトして6行目を生かして実行すると、 Warning: implode() [function.implode]: Bad arguments. in C:\Program Files\Apache Group\Apache2\htdocs\DBtest.php on line 6 となります。 3列目のデータを抜き出して配列を作るにはどのようにすれば良いでしょうか? よろしくご教示頂ければ幸いです。
- ベストアンサー
- PHP
- forを使わずにforeach文のみでループを回す
○質問の主旨 先日、下記の質問をしました。 PHPのfor文とforeach文の使い方 http://okwave.jp/qa/q8812443.html この例では,for文とforeach文を使って、 ・果物の名前を4回繰り返す ・繰り返しの2回目と4回目は、"食べてください"という文字列を入れる というプログラムを実現しています。 今回は同じ出力をするにあたって、 繰り返しはforeachのみで実現したいと考えています。 どのように修正すればよろしいでしょうか? ご存知の方がいらっしゃいましたら、 ご教示を願います。 ○質問の補足 このようなプログラムにしたいと考えています。 $fruits = array("りんご", "ばなな", "ぶどう", "みかん"); foreach ($fruits as $value) { // 果物の名前を4回繰り返して2回目と3回目は"食べてください"を入れる if (($i == 1) || ($i == 3)) { echo "食べてください"; echo "<br/>"; }; echo $value; echo "<br/>"; } 完成イメージはこんな感じです。 (1回目のループ) りんご ばなな ぶどう みかん (2回目のループ) 食べてください りんご ばなな ぶどう みかん (3回目のループ) りんご ばなな ぶどう みかん (4回目のループ) 食べてください りんご ばなな ぶどう みかん ○前回のプログラム for($i = 0; $i < 4; $i++) { if (($i == 1) || ($i == 3)) { echo "食べてください"; echo "<br/>"; }; $fruits = array("りんご", "ばなな", "ぶどう", "みかん"); foreach ($fruits as $value) { echo $value; echo "<br/>"; } }
- ベストアンサー
- PHP
お礼
全く持ってお恥ずかしい限りです...。 ありがとうございました。