• ベストアンサー

連想配列のprint_rやvar_dump出力時における整形

配列が入れ子になると、ダンプ時に改行が入らなくて見づらいです。 構造を視覚的に見やすくするにはどうしたら良いでしょうか。 利用しているエディタはPHPエディタです。 例: Array ( [a] => Array ( [b] => Array ・・・)

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

基本的には print "<pre>"; print_r($配列); print "</pre>"; よく使うなら関数してご利用ください

ton_jiru
質問者

お礼

できました! ありがとうございます。 分かりやすくて、最適な回答でした!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

#2さんの方法GOODですね。 私の場合、いつもソースを見るようにしていますので、あまり気にした事はありませんでした。

全文を見る
すると、全ての回答が全文表示されます。
  • foreach
  • ベストアンサー率51% (43/84)
回答No.1

適切な回答かどうか分かりませんが、Debuglibを使うといいと思います。 単体動作しますのでダウンロードしてincludeするとすぐ使えます。 色分けされて表示してくれるので重宝しますよ。 ダウンロード先 http://www.atomar.de/public/code/debuglib/debuglib.demo.php 日本語による解説サイト http://f3.aaa.livedoor.jp/~matukazu/lib/debuglib.php

参考URL:
http://f3.aaa.livedoor.jp/~matukazu/lib/debuglib.php
ton_jiru
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 連想配列を配列に入れるには

    下記のような連想配列を配列に入れる簡単な方法はありますか。 array("a"=>"1","b"=>"2") 期待する結果(print_r) Array ( [0] => Array ( "a" => "1" ) [1] => Array ( "b" => "2" ) ) 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 連想配列の一部分を全て表示したいのですが・・。

    すみません。phpの事はあまりわからないのですが、以下のような連想配列がありまして、 (下記のような連想配列が大量にあります。) Array ( [0] => Array ( [a] => 1111 [0] => 1111 [b] => 2222 [1] => 2222 [c] => 3333 [2] => 3333 ) [1] => Array ( [a] => 5555 [0] => 5555 [b] => 6666 [1] => 6666 [c] => 7777 [2] => 7777 ) ) 上の配列から下記の配列のみ全て表示したいのですがどう記述したらよいでしょうか。 Array[0][a] Array[0][b] Array[0][c] Array[1][a] Array[1][b] Array[1][c]

    • ベストアンサー
    • PHP
  • var_dumpの使い方について

    よくわからない点がございますので、お知恵をお貸し頂ければ幸いでございます。 よくあるvar_dumpの使い方の例には、 <?php $a = array(1, 2, array("a", "b", "c")); var_dump($a); ?> や、session_start(); var_dump($_SESSION); if (isset($_SESSION['expire'])){ など色々ありますが、 下記スクリプトで「$_POST」「$_COOKIE」「$sql」「$record」を調べるには、var_dumpをどこに配置すれば、画面上にスクリプトが反映されるのでしょうか。 皆様お忙しいところ恐れ入りますが、ご助力頂ければ幸いです。 ■スクリプト <?php require_once('dbwin') session_start(); if (isset($_COOKIE['mail1']) !== TRUE) { $_COOKIE['mail1'] = NULL; } if ($_COOKIE['mail1'] != ''){ $_POST['mail1'] = $_COOKIE['mail1']; $_POST['password'] = $_COOKIE['password']; $_POST['save'] = 'on'; } if (!empty($_POST)) { // ログインの処理 if ($_POST['mail1'] != '' && $_POST['password'] != '') { $sql = sprintf('SELECT * FROM ○○ WHERE mail1="%s" AND password="%s"', mysql_real_escape_string($_POST['mail1']), sha1(mysql_real_escape_string($_POST['password'])) ); $record = mysql_query($sql) or die(mysql_error()); if ($table = mysql_fetch_assoc($record)) { // ログイン成功 $_SESSION['id'] = $table['id']; $_SESSION['time'] = time();                                       ........省略 以上なのですが、上記スクリプトの 「$_POST」「$_COOKIE」「$sql」「$record」を、var_dumpを使って調べたいのですが、 その手法を具体的にご教授願えますでしょうか。 例えば、「$record」であれば、 $record = mysql_query($sql) or die(mysql_error()); $var_dump($record); とすべき。  ⇒という形でお知恵をお貸し頂ければ幸いでございます。 (この場合実際には、画面にvar_dumpで得られた値は表示されませんでした。) みなさまお忙しいとは存じますが、何卒よろしくお願い申し上げます。

    • ベストアンサー
    • PHP
  • phpで、連想配列を普通の配列に変換する関数

    タイトル通りなのですが、phpで、連想配列を普通の配列に変換する関数ってありますでしょうか? $a = array("one" => "Sunday", "two" => "Monday", "three" => "Tuesday"); $b = array(0 => "Sunday", 1 => "Monday", 2 => "Tuesday"); $a配列を、$bに変換したいのです。 http://php.benscom.com/manual/ja/ref.array.php この辺とかは見てみたのですが、無いように見えました(見過ごしているような気もするのですが)。 無論、そういう機能を持つ関数は簡単に作れますが、既にphp自身で実装されているなら、それを使いたいと思います。 ありましたら、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 3つの連想配列を交互に代入して、新しい連想配列を作りたい

    PHP Version 5.1.6を使っています。 それぞれの連想配列を先頭から順番に交互に代入したいのですが、 どのようなプログラムでできるのでしょうか? $arr1 = array(a1=>"aa1", a2=>"aa2", a3=>"aa3"); $arr2 = array(b1=>"bb1", b2=>"bb2", b3=>"bb3"); $arr3 = array(c1=>"cc1", c2=>"cc2", c3=>"cc3"); 代入後 $new_arr = array(  a1=>"aa1",  b1=>"bb1",  c1=>"cc1",  a2=>"aa2",  b2=>"bb2",  c2=>"cc2",  a3=>"aa3",  b3=>"bb3",  c3=>"cc3", );

    • ベストアンサー
    • PHP
  • 連想配列でキーを利用して一部分を引き抜きたい

    PHP5.2.4を使用しています。 配列で一部分を引き抜く関数は次のようなarray_spliceで、 $arr = array('a' => 1, 'b' => 2, 'c' => 3); $arr2 = array_splice($arr, 1/*←ここに'b'と書きたい*/, 1); print_r($arr2);//←Array ( [b] => 2 ) print_r($arr);//Array ( [a] => 1 [c] => 3 ) これは第2引数に添え字の番号(上の例だと1)を指定しなければいけないのですが、 そうではなくて、キー('a'や'b'など)を指定して引き抜きたいです。 そのような関数などはあるのでしょうか?

    • ベストアンサー
    • PHP
  • 【PHP】配列を連想配列に

    $m = array('a', 'b', 'c'); この配列 $m をもとに $n = array(  'a' => array(   'b' => array(    'c' => array()))); 上のような連想配列 $n をつくりたいのですが、 $n = array(  $m[0] => array(   $m[1] => array(    $m[2] => array()))); 要素の数が固定のときは、これでもいいのですが、数が変動する場合に対応できません。 何か方法があれば教えてください。

    • ベストアンサー
    • PHP
  • 2つの連想配列を比較して一致するものを出力

    下記のような連想配列が2つあります。 それらの配列の3つ目の電話番号(070-0000-000等)のみを比較して一致する連想配列を配列にして出力するようなプログラムを考えています。 連想配列同士を比較する方法が見つからなかったため、どのように書いたら良いのかわかりません。 ご教授お願い致します。 【既存の連想配列】 <?php $first = array(     'test_1' => array(         0 => '山田太郎',         1 => 'ヤマダタロウ',         2 => '090-0000-0000',     ),     'test_2' => array(         0 => '田中次郎',         1 => 'タナカジロウ',         2 => '080-0000-0000',     ),     'test_3' => array(         0 => '佐藤三郎',         1 => 'サトウサブロウ',         2 => '070-0000-0000',     ), ); $second = array(     'test_1' => array(         0 => '鈴木四郎',         1 => 'スズキシロウ',         2 => '050-0000-0000',     ),     'test_2' => array(         0 => '佐藤五郎',         1 => 'サトウサブロウ',         2 => '070-0000-0000',     ),     'test_3' => array(         0 => '安藤六郎',         1 => 'アンドウロクロウ',         2 => '000-0000-0000',     ), ); ?> 【比較後の配列(例)】 $result //に結果を格納 この$resultの中身は、 array('佐藤五郎','サトウサブロウ','070-0000-0000'); のような感じです。

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

    myArray = new Array();  myArray["A001"] = new Array();   myArray["A001"]["B001"] = "B001";   myArray["A001"]["B002"] = new Array();    myArray["A001"]["B002"]["C001"] = "C001";    myArray["A001"]["B002"]["C002"] = "C002";  myArray["A002"] = "A002"; JavaScriptの連想配列について質問させて頂きます。 例えば上記のような配列があったとして、値とキーはそのままで "C001" と "C002" の"B002"配列への格納順序だけ入れ替えたい場合、 どのように実装すればよろしいでしょうか? ちなみにキーや値はサンプルで実際にはsort出来るルールはありません。。。 ※入れ替え後のイメージ --------------------------------------------------------------------- myArray = new Array();  myArray["A001"] = new Array();   myArray["A001"]["B001"] = "B001";   myArray["A001"]["B002"] = new Array();    myArray["A001"]["B002"]["C002"] = "C002"; ←格納順序が    myArray["A001"]["B002"]["C001"] = "C001";  入れ替わった  myArray["A002"] = "A002"; ---------------------------------------------------------------------

  • 配列に動的に連想配列を入れる方法を教えてください

    質問させてください。 $mods = array('def', 'con', 'vie'); (ここでは$modsの要素は3つですが、環境によって要素の数が変わるとします。) これを連想配列で array( 'def' => './a/b/def/o', 'con' => './a/b/con/o', 'vie' => './a/b/vie/o' ) のような形に動的にしたいと思います。 その為 array( $mods[$i] => './a/b/' . $mod[$i] . '/o', ) のように$modsの要素数だけ動的に入れていきたいのですがどのようにすればいいのでしょうか? array_push()だと値だけが入ると思うので、良く分かりませんでした。 $front->setControllerDirectory(array( 'default' => APP_DIR . DS . 'modules' . DS . 'default' . DS . 'controllers' )); のようなルーターにパスをその時の環境に合わせて$key=>$valueの連想配列をどんどん入れていきたいと考えております。 説明が分かりにくいかもしれませんが宜しくお願いします。

    • ベストアンサー
    • PHP