phpでin_arrayを使わずに同じことをする

phpではすごく大きな配列だとin_arrayが遅いようなので書き換えてみました

普通のin_array

$arr = [1,2,3, 4, 5];
if (in_array(2, $arr)) {
    echo 'exists';
}

issetが早いらしいので、isset版

$flipArr = array_flip($arr);
if (isset($flipArr[2])) {
    echo 'exists';
}

キーと値を反転させて、issetで判定しています
ベンチとればよかったですが、かなり早くなりました

surround.vimで単語をダブルクオートで囲う

tpope/vim-surround
をインストール

Neobundleで入れました

$ vim .vimrc
NeoBundle ‘tpope/vim-surround’

一回vimを開きなおして

:NeobundleInstall

準備完了

ビジュアルモードで選択して
Shift + s

で下にカーソルが移動するので

を打つと単語がダブルクオートで囲まれます

ysiw
で下にカーソルが移動するので

を打つと単語がダブルクオートで囲まれます

ダブルクオートを外すときは単語の上にカーソルがある状態で
ds
で削除されます

vimで複数行の先頭に追加と行末に追加

こんな文があった時

William
Steven
Ryan
Johnny

vimで複数行選択して先頭に追加

Shift + v
j
j
j
Shift + i
>
ESC

>William
>Steven
>Ryan
>Johnny

vimで複数行選択して末尾に追加

Shift + v
j
j
j
$
Shift + a
,
ESC

William,
Steven,
Ryan,
Johnny,

複数行選択して行連結させたらCSVになります

Shift + v
j
j
j
Shift + j

William, Steven, Ryan, Johnny,

mysqlのtext型の最大サイズは?

WEBサイトの開発で、mysqlのtextのフィールドをつかったモデルにValidateをかけるためサイズを調べてみました

MySQL :: MySQL 5.1 リファレンスマニュアル (オンラインヘルプ) :: 6.5 データ型のストレージ要件

を参考に

textは 2の16乗 – 1 バイトまでのようです
65535バイトでValidateをかけるとよさそうです