• ベストアンサー
  • すぐに回答を!

php配列確認に関して

$name = array( '0' => 'test', '1' => 'test1', '2' => 'test2', '3' => 'test4', '4' => array( '0' => 'e', '1' => 'r', '2' => 'y', '3' => 'i', ), ); foreach ($name as $key => $value) } print $value; } このうえの配列を確認したいのですが print $value;でやると 4がarrayとなってしまいます 4の中身を確認したいのですか foreachの下に何を書けばいいでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数128
  • ありがとう数0

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

  • ベストアンサー
  • 回答No.1
  • t_ohta
  • ベストアンサー率38% (3446/9034)

foreach ($name as $key => $value) { if (is_array($value)) { foreach ($value as $key2 =>$value2 ) { print $value2; } } else { print $value; } }

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • 不要な配列を消したい

    2次元配列で、不要な要素を取り除きたいのですが良い方法が思い浮かばず、どうしたものかと悩んでいます。 一番初めと5番目を消したいのですが、preg_match で日付の2006にマッチしない要素をunsetしてみましたがうまくいきませんでした。 $data = array ( array('<br>'), array("2006 03 22", test), array("2006 03 23", test2), array("2006 03 25", test3), array('') ); $pattern = '/2006/'; foreach($data as $key => $value) { if(preg_match($pattern, $value[$key])) { unset($data[$key]); } } もし方法をご存知のかたおられましたらよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • php 2つの配列の内、片方を元にして、1つの配列にしたい

    Data AとData Bをもとに Data Cを作成したいのです。 ※DataAに無くても、DataBにあるものはDataCに格納したい。 *Data A* ---------------------------- index | indexA | Name ---------------------------- 1    100   A_Test1 2    101   A_Test2 3    102   A_Test3 4    103   A_Test4 5    104   A_Test5 6    105   A_Test6 7    106   A_Test7 *Data B* ---------------------------- index | indexA | flg ---------------------------- 11   100   1 12   101   0 13   102   1 14   103   1 15   104   1 16   106   0 *Data C* indexAをkeyに結合 ------------------------------- index | ndexA | Name | flg ------------------------------- 1    100  A_Test1  1 2    101  A_Test2  0 3    102  A_Test3  1 4    103  A_Test4  1 5    104  A_Test5  1 6    NULL  A_Test6  0 7    106  A_Test7  0 arrayDataA = Array( [0] => Array([indexA]=> 100 [Name] = A_Test1           [1] => Array([indexA]=> 101 [Name] = A_Test2           [2] => Array([indexA]=> 102 [Name] = A_Test3           [3] => Array([indexA]=> 103 [Name] = A_Test4           [4] => Array([indexA]=> 104 [Name] = A_Test5           [5] => Array([indexA]=> 105 [Name] = A_Test6           [6] => Array([indexA]=> 106 [Name] = A_Test7          )) arrayDataB = Array( [0] => Array([indexA]=> 100 [flg] = 1           [1] => Array([indexA]=> 101 [flg] = 0           [2] => Array([indexA]=> 102 [flg] = 1           [3] => Array([indexA]=> 103 [flg] = 1           [4] => Array([indexA]=> 104 [flg] = 1           [5] => Array([indexA]=> 106 [flg] = 1          )) というところまで格納するこはできたのですが この、arrayDataAとarrayDataBを元に arrayDataCを作成したいのです。 初歩的なことかと思いますが、 どのように、プログラムを書くと実現できるのでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 多次元配列で、foreachを使って、key値を

    多次元配列で、foreachを使って、key値を入れ替えているのですが、 なんで、こうなるか分かりません。  $x = array();  $x[] = array(   "id" => 1,   "name" => "JavaScript",  );  $x[] = array(   "id" => 5,   "name" => "PHP",  );  $z = array();  foreach($x as $key => $value){   $z[$value["id"]] = $value;   }  print_r($z); 配列のKEYをIDに変更しているのですが、 なんで、こうなるのでしょうか? 特に、  $z[$value["id"]] = $value; が分かりません。 例えば、foerachの途中で、var_dumpすると、 1回目だと、 ◆$key 0 ◆$value Array (  [id] => 1  [name] => JavaScript ) ◆$value["id"] 1 まではいいのですが、 ◆$z[$value["id"]] の値が見れません。 ここはどんな処理をやっているのでしょうか?

    • ベストアンサー
    • PHP
  • phpの連想配列について・・

    質問させていただきます。 初歩的ですみません。。 以下のような連想配列を array(3) { ["hidden_name"]=> array(5) { [0]=> string(8) "test.jpg" [1]=> string(8) "test.jpg" [2]=> string(8) "test.jpg" [3]=> string(8) "test.jpg" [4]=> string(8) "test.jpg" } ["number"]=> array(5) { [0]=> string(1) "8" [1]=> string(1) "4" [2]=> string(2) "14" [3]=> string(2) "14" [4]=> string(2) "15" } ["comment"]=> array(5) { [0]=> string(5) "test1" [1]=> string(5) "test2" [2]=> string(5) "test3" [3]=> string(5) "test4" [4]=> string(5) "test5" } } っを以下のような改行区切りのデータに整形したいと考えています。 test.jpg,8,test1 test.jpg,4,test2 test.jpg,14,test3 test.jpg,14,test4 test.jpg,15,test5 当然、自動で増えたり減ったりします。 実は以前からこのパターンではまることが多く、効率の良い整形の仕方や マストなやり方があればご指南いただきたいです。 初歩的で申し訳ありませんが何卒よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPのようにスマートに配列の配列など記述する方法が

    PHPの場合、データ構造ですが以下のようになっています。 $a = array( "test1" => array( array(1,1), array("x", 2) ), "test2" => array( array(3,2), array("y", 1) ), ); これをエクセルVBAの場合、Scripting.Dictionaryを使えば連想配列が 可能ですが、PHPのようにスマートに配列の配列など記述する方法が わかりません。 Dim dic As Scripting.Dictionary set dic = New Scripting.dictionary dic.Add "test1", ???????????????? dic.Add "test2", ???????????????? スマートにデータ構造を実現できる方法が知りたいです。

  • PHPの多次元配列について

    HTMLでホームページを作れる以外はプログラムに関しほぼ素人です。 環境 XAMPP1.70(最新)にてアパッチなど一括ダウンロード PHP言語にて3×4の表で以下の数値を多次元配列にて作成しようと思っているのですが、当方初心者なもので、 以下のコード(細かい部分は省略しています)、特にforeachがネストになっている部分の処理の流れがいまいちよくわかりません ~~~~~~~~~~~~~~~~~~~~~~~~~ <table border=2> <th>都市名</th> <th>最高気温</th> <th>最低気温</th> <?php  $data=array( array("東京"32,25) array("名古屋",45,67) array("埼玉",32,67) array("大阪",86,34) ) foreach($data as $city){ print "<tr>"; foreach($city as $value){ print "<td>{$value}</td>"    ●1回目foreachからここまでの流れがいまいち分かりません } print "</tr>"; ?> ~~~~~~~~~~~~~~~~~~~~ 一つ目のforeachにて、配列$dataが指定されていますので外側の配列を処理していくと思うのですが、具体的にどういう順番で処理されていくのでしょうか。 またforeach()の中の"$cityが最終的に$valueに格納という形になっていますが、10~13行目のarray("東京",32,25)とどのような関係で処理されていっているのか教えていただけませんでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • カラムで括ったMAX値のselect

    Mysql5.0.18です よろしくお願いします テーブル:test_tblです key:キー name:生徒氏名 test_name:テストの名前 value:点数 下記のようなデータを用意しました key  name  test_name  value 1    A    test1   30 2    A    test2   50 3    B    test1   40 4    B    test2   80 5    C    test1   90 6    C    test2   90 下記のように 生徒(name)毎の最高点のレコードを1件づつ抽出したいのですが 可能でしょうか? key  name  test_name  value 2    A    test2   50 4    B    test2   80 5    C    test1   90 私は下記のsqlでチャレンジしてダメでしたTT Select test_tbl.key, test_tbl.name, test_tbl.test_name, Max(test_tbl.value) as value From test_tbl Group By test_tbl.name Order By test_tbl.name Asc, test_tbl.test_name Asc 結果は・・・ key  name  test_name  value 1    A    test1   50 3    B    test1   80 5    C    test1   90 です・・・ Max関数を使えば、生徒のMAX点が出力されるのは 分かるのですが、そのMAX点のレコードを抽出するには・・・ という所で行き詰っています よろしくお願いします

    • ベストアンサー
    • MySQL
  • PHPのforeachでMysqlにINSERT

    PHPのforeach文を使いMysqlにデータをINSERTしたいです。 配列$resultは以下のような連想配列になっています。 Array ( [0] => Array ( [A] => 1 [B] => 2 [C] => 3 [D] => 4 [E] => 5 ) [1] => Array ( [A] => 2 [B] => 4 [C] => 6 [D] => 8 [E] => 10 ) ) 上記の連想配列をforeach()文で以下の処理をします。 foreach ($result as $key => $value) { /** * データベースへの追加(新規追加時だけ実行。コメント忘れずに) */ $sql = $pdo->prepare('INSERT INTO sample(a, b, c, d, e) VALUES(:a, :b, :c, :d, :e)'); $sql->execute(array(':a' => $value[A], ':b' => $value[B], ':c' => $value[C], ':d' => $value[D], ':e' => $value[E])); } その後データベースでselect * from test;とすると1行目のデータしか格納されていません。原因が不明です。 print すると期待する配列要素が表示されますので配列のデータ配置不備ではありません。 アドバイス頂きたくお願い申し上げます。

    • ベストアンサー
    • PHP
  • 配列型の宣言?

    こんにちは。 あるサイトで見たphpのサンプルなのですが、 postされた全ての値を配列に格納するもので、以下のような記述がありました。 foreach((array)$_POST as $key => $value){  $array[$key] = $value; } ポストされた全ての値を、配列$arrayに連想配列として格納しているのはわかるのですが、 foreachの、(array)というのはどういう働きをするものなのでしょうか。 これは、$_POSTが配列であるという宣言でしょうか。 それと、postされた値がない場合、$_POSTを配列だと宣言しておくことで、foreachのエラーを回避するような役割もあるのでしょうか。 恥ずかしながら、(array)のような記述をphpではあまり見ないような気がするのですが、なんというキーワード(?)で勉強すれば理解が深められるかもご教授頂けますと助かります。 宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • PHPでファイルから取り込んだ数字で計算できない

    test.txtの内容 ------ 10 ------ のとき、 <? $file="test.txt"; //ファイルの中の行を配列に格納 $ary=file($file); //テキストファイル内の数字を取得 foreach ( $ary as $key => $value ) { $value = str_replace(array("\r\n","\r","\n"), "", $value); if (strlen($value )>0){ $a=trim($value); } } $a=$a+1; print $a; ?> として、11が出力されることを期待したのですが、 1が出力されてしまいます。 11を出力されるにはどうしたらよいでしょうか? どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP