投稿者別アーカイブ: nocturne-project - ページ 19

連想配列とオブジェクトの違い

一瞬頭がこんがらがった。記述の仕方は同じなのに、結果が出てこないし、JSONオブジェクトにも変換できない。どうしてなんだろうと思ったら、自分が記述していたのは連想配列のほうだった。

連想配列

var a = [];
a["hoge"] = 1; //a.hoge = 1;
console.log(a);
//結果:[]Code language: JavaScript (javascript)

オブジェクト

var a = {};
a["hoge"] = 1; //a.hoge = 1;
console.log(a);
//結果:Object > hoge: 1, __proto__: Object >Code language: JavaScript (javascript)
var a = [];は var a = Array(); var a = {}; は var a = Object(); 記述は同じだけど、中身の扱いが全く違う別物なので、初歩的ミスながら気づくのにちょっと時間がかかってしまった。

Javascriptで連想配列 hoge[“map”] が使えない理由

連想配列を作ろうと思い hoge[“map”] = 1 と代入しようとしたらエラーが発生した。
なぜなんだろうと思い調べたら、下記の記載を見つけた。

JavaScriptの配列ってmapとかfilterとかあったんだ – phithonの日記

[“map”]は .mapとしても使えるので、予め配列にはmapメソッドが定義されていたらしい。mapは全ての配列の値に対して計算を行い配列を返すメソッドらしい。こんな便利なものがあったとは知らなかった。

.filterというのは、ifのような条件式のようだ。これを使うと絞込みをできる。.sortは名前の通りソート。こんな簡単にソートができたなんて驚き。よって、hoge[“filter”]にも代入できない。

すぐ使えるPHPの正規表現サンプル

GoogleでPHPの正規表現について検索しても直感的に使えるようなサンプルがなかったので書きました。

正規表現がマッチした数を返す『preg_match』

$hoge = preg_match("/h..e/", "hoge");
print($hoge);
//結果:1Code language: PHP (php)

正規表現がマッチした部分を置換する『preg_replace』

$hoge = preg_replace("/h..e/", "hage", "hagehigehugehegehoge");
print($hoge);
//結果:hagehagehagehagehageCode language: PHP (php)

正規表現がマッチした部分を区切り文字として配列変数に分割して代入する『preg_split 』

$hoge = preg_split ("/h..e/", "ahagebhigechugedhegeehogef");
print_r($hoge);
//結果:Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f )Code language: PHP (php)

正規表現でマッチした部分を取得する

$hoge = preg_match("/h..e/", "hoge", $m);
print($m[0]);
//結果:hogeCode language: PHP (php)

正規表現でグループにした部分を取得する

$hoge = preg_match("/hoge(hage)hige/", "hogehagehige", $m);
print($m[1]);
//結果:hageCode language: PHP (php)