- ベストアンサー
大切なPHP用語
今、よく使用される代表的なPHP用語について調べています。本も何冊か買ったり、インターネットでも調べてみるのですが、どれがよく使われるPHP用語かがのっていないのでよく分かりません。 一応連想配列(array)と演算子、制御(if)については大切なんじゃないかと思ってまとめました。 ですのでこの3つ以外で 「大切だ」 「PHPをまとめるならこれを書け」 「これはよく使うので調べといた方がいい」 というようなPHP用語がありましたら是非教えて下さい!20個くらいを調べる予定です。 ちなみにprintfはもうわかるので調べません。 困っています!どうかよろしくおねがい致します!
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- PHPの=>という演算子の名前は?
PHP初心者です。 連想配列やeach() 関数で使う=>という演算子の呼び方は何でしょう。 ->はアロー演算子と呼ぶそうですが、=>の名前がわかりません。 ご存じの方、教えてください。
- ベストアンサー
- PHP
- 連想配列を array_multisort() でphp4、php5の違い
いつもお世話になります。 連想配列をarray_multisort()でソートしようとしています。 php5のサーバでは思うように動作するのですが、 php4のサーバでは、ソートされません。 print_r($ary); Array ( [BuID] => 11 [BuName] => aaaa [yymmdd] => 080507 [DateDisp] => 08年05月07日(水) [DateType] => 1210086000 [TaikaiName] => AAAA [HRef] => [AnkName] => ) Array ( [BuID] => 12 [BuName] => bbbb [yymmdd] => 080822 [DateDisp] => 08年08月22日(金) [DateType] => 1219330800 [TaikaiName] => BBBBBBBB [HRef] => [AnkName] => ) ・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・ の様な連想配列をyymmddでソートしようとしています。 php5.2.6だと、 foreach($ary as $key => $row){ $yymmdd[$key] = $row['yymmdd']; } array_multisort($yymmdd,SORT_DESC,$ary); で、$aryにyymmddで並び替えられた配列が入ります。 しかし、php4.2.2では、ソートされず、もとの配列がそのまま$aryに入ってしまいます。 array_multisort()は、phpのバージョンによって動作が異なるような記載もありません。 どなたかわかる方見えましたらよろしくお願いいたします。
- ベストアンサー
- PHP
- 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
- 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で、連想配列を普通の配列に変換する関数
タイトル通りなのですが、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
- PHPのエンコードについて教えて下さい。本のサンプルに
PHPのエンコードについて教えて下さい。本のサンプルに function h($var) { // HTMLでのエスケープ処理をする関数 if (is_array($var)) { return array_map('h', $var); } else { return htmlspecialchars($var, ENT_QUOTES); } } と書いてあり、もし配列だったらhtmlエンコードしてはいけず、配列ではなかったらhtmlエンコードするような意味だと思うのですがどうして配列だったらhtmlエンコードしてはいけないのですか??? お手数かけますが教えて下さい。お願いします。
- ベストアンサー
- PHP
- phpで 変数の中にデータが入っているかどうかを判別する
phpで変数の中が空なら・・・ という命令を書く場合 if($hoge == "")とか if(isset($hoge)) という風に書くとおもうんですが、 変数の中身が配列で、その配列の一つでもデータが入っているかどうかを 判別する方法はないのでしょうか? 例えば、 $hoge = array([1] = りんご,[2] = ) と $hoge = array([1] = ,[2] = ) で、表示結果を変えたいということです。 配列を一旦分解するしかないのでしょうか?
- ベストアンサー
- PHP
- [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
- 正規表現でのマッチング
連想配列%hushがあります。 %hushの中のキーが「a何とか」、つまり a0、a1、a2、a3、・・・ の値だけを、配列@arrayに格納します。 つまり $array[0]=$hush{'a0'} $array[1]=$hush{'a1'} $array[2]=$hush{'a2'} $array[3]=$hush{'a3'} ・・・ といった感じにしたいのですが、 「a何とか」は正規表現を用いて a.* と表現できます。 ってここまでは手元の本で分かったのですが、マッチングのif文をどう書けばいいんだよ! if($key==a.*) と書いてもうまくマッチしてくれないんで、a.*を""で括ってみたり()で括ってみたりするものの相手にされず・・・ 手元の本は「こういう場合正規表現ではこう書けば良くて、これをマッチングさせれば良い」みたいなことを書いていますが、マッチングのさせ方は書いていません。 プログラムの文法書を読むと、条件分岐の仕方は書いていますが、==演算子の右側が正規表現だった場合の使い方は書いていません。 あるいは、正規表現の場合のマッチングはif文などを用いないのでしょうか? だったら正規表現の本にマッチングの文法を書いていますよね!? なんだかんだでマッチングがうまくいかないのです。 この場合、どう記述すればいいのでしょうか? お手数をお掛けします。
- ベストアンサー
- その他([技術者向] コンピューター)
- 連想配列の一部分を全て表示したいのですが・・。
すみません。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
お礼
回答ありがとうございます!!よくわからない質問内容だったと思いますが、汲み取ってもらえてよかったです。大変具体的でこれはかなり参考になります!!本当にありがとうございます!