はじめに
競技プログラミングをしていると、Webアプリ制作では全く使わなかった関数によく遭遇するので備忘録としてまとめておきます。
※基本的な標準入力の内容に関しては以下でまとめています。
HackerRankで使った関数まとめ
超頻出な関数
・fopen() 参考:ファイルまたはURLを開く
$fptr = fopen(getenv("OUTPUT_PATH"), "w"); $stdin = fopen("php://stdin", "r");
“w”は書き出し(write)のみ、”r”は読込(read)のみでオープンするためのパラメータ(補助変数)らしいです。
・array_map() 参考:指定した配列の要素にコールバック関数を適用。返り値は配列で返却する。
HackerRankの例)
$ar = array_map('intval', preg_split('/ /', $ar_temp, -1, PREG_SPLIT_NO_EMPTY));
preg_split:正規表現で$ar_tempで受け取った文字列を分割。-1は要素数の制限がないことを意味。PREG_SPLIT_NO_ENPTYで空文字列は出力しないように設定。
コールバック関数とは、呼び出し先の関数の中で呼び出される関数のことです。
・fwrite() 参考:ファイルの書き込み処理
fwrite($fptr, $result . "\n");
第一引数でfopen()で使用して作成したリソース、第二引数で書き込む文字列。
・fclose() 参考:オープンされたファイルをクローズする。
fclose($stdin); fclose($fptr);
・intval() 参考:変数を整数の値で取得する。※データ型
$n = intval(trim(fgets(STDIN)));
・trim()参考:文字列の先頭および末尾にあるホワイトスペースを取り除く
$n = intval(trim(fgets(STDIN)));
頻出な関数
・count()参考:変数に含まれるすべての要素、 あるいはオブジェクトに含まれる何かの数を数える
配列で使う関数
・array() 参考:配列を作成
$arr = array();
変数$arrを配列として定義しています。
・array_sum() 参考:配列の値の合計を計算
function simpleArraySum($ar) { return array_sum($ar); }
関数を呼び出された際に渡された配列の引数の和を求めています。
・array_filter()参考:コールバック関数を使用して、配列の要素をフィルタリング
文字列
・substr_count()参考:指定した文字列の出現回数を数える
知っ得な関数
・var_dump()参考:配列やオブジェクトの値がどうなっているのか調べる
var_dump($arr);
出力すると。

この場合は、変数の内容が配列、要素の数が3つ、配列内のキーと値が表示。


・print_r()参考:配列やオブジェクトの値がどうなっているのか調べる
print_r($arr);
出力すると。

var_dumpに比べて少しシンプル。配列で各要素のキーと値のみ表示。
上記のような連想配列を出力したい場合は以下のようになります。
echo $arr[0][0] //11と出力。
おわりに
随時更新していきます!
参考
jQueryやJavaScriptでvar_dump()したいときは、console.log(hoge)してChromeのコンソールでみればいいらしい
配列(リスト)から特定の条件にマッチする要素のみを取り出すには