• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP 配列の中身を全て変数に設定)

PHP配列の中身を全て変数に設定する方法

このQ&Aのポイント
  • 配列$messageに値が入っている状態で、一つの記述で配列の中身全要素を変数に設定する方法を紹介します。
  • 具体的には、$message配列の要素を指定する代わりに、配列の中身全要素をログに記録する方法を説明します。
  • この方法を使うことで、$message[0].[1]...と指定する手間を省くことができます。

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

  • ベストアンサー
回答No.1

こんな感じでどうでしょう <?php $message = array(); $message[0] ="あいう"; $message[1] ="123"; $message[2] ="ABC"; //結合するか $log = join('',$message)."\tメッセージ\n"; //関数にする? function error(){   if(func_num_args() === 1 and is_string(func_get_arg(0))){     return func_get_arg(0);   }   else{     return join('',func_get_args());   } } echo error($log); echo error($message[0],$message[1],$message[2])."\tメッセージ\n"; ?>

noname#152215
質問者

お礼

なるほど、joinというものを使えばよいのですね。 調べた結果、implode 関数でもOKなことが分かりました。 ありがとうございました!!

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

関連するQ&A

  • 配列の簡易な記載法ついて

    JavaScript初心者です。 20の要素を持つ配列があるとします。 そのうちの複数個に同一の値を入れるには下記のような冗長な書き方以外にどのようなものがあるのでしょうか? 例: 配列arrayの1,5,9,13,17番目にabcという値を格納する (※値を入れて宣言する以外の方法で) array[0] = array[4] = array[8] = array[12] = array[16] = "abc";   検索の仕方が悪いのか簡易な書き方が見つからなかったので、教えていただけると助かります!  

  • [PHP]配列におけるインデックスの考え方

    $scores = [10, 50, 30, 20]と言った配列があるとします。 配列内の10の値を取りだそうとすれば print $scores[0]; とすればブラウザに10の値が表示されます。 というか、配列というのは、[0][1][2][3]…と数えるものだと思っていました。 今、array_fill()関数について学習しています。 $prices = array_fill(0, 5, 10); としてprint_rで出力すると Array ( [0] => 10 [1] => 10 [2] => 10 [3] => 10 [4] => 10 ) と自分で理解できる範囲の結果が表示されます。 ところが、 $prices = array_fill(-2, 5, 10); をprint_rで出力すると以下のように返ってきます。 Array ( [-2] => 10 [0] => 10 [1] => 10 [2] => 10 [3] => 10 ) 単純に考えると、以下のように返ってこないのはなぜなのでしょうか? Array ( [-2] => 10 [-1] => 10 [0] => 10 [1] => 10 [2] => 10 ) また $prices = array_fill(5, 5, 10); と記述すると、 Array ( [5] => 10 [6] => 10 [7] => 10 [8] => 10 [9] => 10 ) と返ってきます。 配列のインデックス、添字を名前や商品名にして連想配列が出来るのはわかります。 (1)マイナス値からはじめた場合、なぜ[-2][-1][0]…のように返ってこないのはなぜでしょうか? (2)配列の添え字、インデックスが、[5]ではじまり[6][7][9][10]…とすることに 何か意味があるのでしょうか? $prices = [10, 10, 10, 10, 10]のような記述があった場合、初学者には[0]からはじまっているからこそ array_spliceなどでキー名がわからずとも、配列を操作を容易にできるのではないかと思ってしまいます。 上記2点、配列内でのマイナス値の扱い方、配列の添字が[0]以外からはじまる理由がよくわかりません。 分かる方いらっしゃいましたら教えて下さい。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • php&html printで二次元配列が表示できない

    <html><body> <?php $array1[]= array(); //二次元配列作成 $array1[0][0] = 123; print "$array1[0][0]"; ?> </body></html> というプログラムを作成してみたのですが、printの中身がhtmlでは”一次元配列$array1[0]”と”文字列[0]”という風に読み取られているようで、 表示が Array[0] となってしまいます。 どうにか二次元配列の値を表示する方法はありませんか?

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

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

    • ベストアンサー
    • PHP
  • PHPからFlashへの配列の渡し方がわかりません

    こんにちは。 FlashとPHPの連係についての質問です。 どうしてもわからないのでどなたか手を貸してくださると助かります。 PHP側から$a=array("a","b","c")、という配列をFlash側に送ります。 その際、まずHTMLタグの<object>内にはどのように記述すればよろしいのでしょうか? またFlash側でその配列をどのように受け取り、その値を配列に入れたいのですがどのようにしたらよろしいでしょうか?? どなたかお願いいたします。

    • ベストアンサー
    • Flash
  • 多次元配列のカウントのしかた

    すみません、質問させてください。 $array1:1次元配列 $array2:2次元配列 1次元配列のカウント(要素数)をしるには count($array1) とすれば取得することができますが、 2次元配列のカウントを取得するにはどのように すればいいのでしょうか?そんな関数はありますか? $array2のデータの中身 $array[0][0] = 'a'; $array[0][1] = 'b'; $array[1][0] = 'c'; $array[1][1] = 'd'; $array[2][0] = 'e'; $array[2][1] = 'f'; この場合、3という値が欲しいのですが・・・ 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 参照変数の親配列を取得

    データの多次元配列があって、値に応じて動的に関数を選択し 中身の値を引数で渡すみたいな感じの処理をしています ほとんどの処理は中身の値だけあれば事足りるのですが 稀にキー値を使いたい処理がでてきます 本当に稀なので引数にキー値も渡すようにするのは 無駄が多くなるように思うので避けたく できれば参照変数で渡される値から 親配列でのキー値を取得したいと思っています $arr2A=array('a'=>array('fnc'=>'A','あ','い','う'),'b'=>array('fnc'=>'B','か','き','く'),'c'=>array('fnc'=>'C','さ','し','す')); $arr2B=array('a'=>array('fnc'=>'A','あ','い','う'),'b'=>array('fnc'=>'B','か','き','く'),'c'=>array('fnc'=>'C','さ','し','す')); $arr2C=array('a'=>array('fnc'=>'A','あ','い','う'),'b'=>array('fnc'=>'B','か','き','く'),'c'=>array('fnc'=>'C','さ','し','す')); foreach($arr2A as $key=>$val){ $fncs[$val['fnc']]($val); } foreach($arr2B as $key=>$val){ $fncs[$val['fnc']]($val); } foreach($arr2C as $key=>$val){ $fncs[$val['fnc']]($val); } $fncs=array( A=>function(&$arr){ }, B=>function(&$arr){ }, C=>function(&$arr){ //ここで稀にキー値も使いたい }); 実際のコードはかなり長いので載せられませんが 要約すると上記のような感じの処理です まずどのデータ配列の集合から渡されたのかが明確ではありませんので indexOfなどでキー値を得るのというのが難しいです 現在は、その処理が必要なデータ行について処理前に 中身にキー値をあらかじめ入れてしまう というように対応しているので、一応解決はしているのですが もし参照変数から親配列を得る方法が あればと思い質問させていただきました ”そんなものはない”という回答も あきらめつくのでお願いします

    • ベストアンサー
    • PHP
  • 複数の配列の要素を繰り返し処理をして書き込むと変数の中身がおかしくなってしまいます。

    いつもお世話になります 複数の配列の要素を繰り返し処理をして書き込むと変数の中身がおかしくなってしまいます。 ポストメソッドで複数のテキストを受けて書き込みたいのですが、書き込む内容が""になってしまいます print qq|<form action=\"$myself\" method=\"POST\">\n|; LOOP: foreach $i (0..7) { foreach $j ($x..$x + 3) { print qq|@eqipument[$j]<input type=text name="arg_$j" size_1=35>\n|; last LOOP if ($j == $#eqipument); } $x = $x + $x_colm; print qq|<br>\n|; } @eqipumentの配列の要素を変数arg_$jで配列が終わるまで繰り返して入力画面を表示させます その後 # デスク書き込み open(OUT,">>$logfile") || &error("Write Error : $logfile"); $j = 0; foreach(0..@eqipument) { print OUT "$in{'arg_$j'}<>"; $j++; } close(OUT); として書き込みをすると、変数arg_$jの内容が空になってしまい<>だけがかきこまれます 変数部分を arg_0,arg_1,arg_2.... と明示して書くときちんと入力画面で入力した テキストが書きこめれますが、入力項目も多いですしプログラム的にも見難いので 繰り返し処理で書き込みをしたいのですがなぜこのような結果になるのか(arg_$jの内容が空になる)理解できません又 print qq|$in{'arg_$j'}\n|;として 変数の中身を検証するためにコンソールに出力すると中身は "" になっています 宜しく御教授お願いします。

    • ベストアンサー
    • Perl
  • PHPのarray配列について初心者の質問です。

    サイトを見ながらPHPを勉強しています。 入力チェックとエラー表示(1) - PHP基礎講座 http://www.phppro.jp/school/phpschool/vol6/2 で、 $error_message = array(); のarrayの使い方がよくわかりません。 arrayとは <?php $data = array("1"=>"ああああ","2"=>"ああああ","3"=>"ああああ"); ?> と言うように、()内に配列していく関数ですよね。()内に何もない場合はどういう様な動きになるのか、よくわかりません。このように書くと、()の中に連想配列で、$error_messageが読み込まれていくのでしょうか??? うまく質問も出来ない位の知識ですが、解説お願いします。

    • ベストアンサー
    • PHP
  • 配列の挿入方法

    $a = array('1','2','3'); の配列に、 指定した配列の要素の場所に値を挿入するには PHPの場合どうするのが一般的でしょうか? 期待する事は、 例えば2番目に値77を挿入したいときに、 array_insert(2,77); のようにユーザ関数を指定し、 1,2,77,3のような配列になることです。 よろしくお願いします。

    • ベストアンサー
    • PHP