配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ (いやなブログ) 配列操作の比較表は自分のためにも作ったことはなかったので、別に混乱はしないけど、Ruby の分を残して PHP との比較表を起こしてみた。気づいてないだけでもっと賢く書く方法がありそうな気もするけど、とりあえず出しちゃえ。あ、バージョン書いてなかった。PHP4 です。5 は知らない。(マニュアルも見てない。)
PHPでは2つの配列を合わせるのに、「+」演算子で行う方法とarray_merge関数で行う方法がある。 2つの方法は全く同じ動作をするわけではなく、いくつかの違いがある。 例えば、以下のような2つの配列があるとする。 $array[0] = array( 1 => '伊藤博文' 2 => '黒田清隆' 3 => '山縣有朋' '?' => '小渕恵三(1)' ) $array[1] = array( '?' => '小渕恵三(2)', 85 => '森喜朗', 87 => '小泉純一郎', 90 => '安倍晋三', ) このデータを+演算子で加算をすると以下のような結果が得られる。 print_r($array[0] + $array[1]); Array ( [1] => 伊藤博文 [2] => 黒田清隆 [3] => 山縣有朋 [?] => 小渕恵三(1) [85] => 森喜朗
PHPのコレクション処理ライブラリUnderbar.phpの紹介 こんにちわちわ。 以前に便利なVimのOperatorをマスターするを書きましたemonkakです。 今回は私が個人的に開発を進めていて以前に社内勉強会で発表しました、PHPのコレクション処理ライブラリのUnderbar.phpの紹介をしたいと思います。 PHPのarrayなんとか関数は使い勝手が悪い PHPには配列処理のための関数がたくさんありますが、array_map()の引数の順番が変だったりarrayがそもそもオブジェクトではないのでメソッドチェインができなかったり使い勝手が良くありません。 $xs = range(1, 10); $twice = function($n) { return $n * 2; }; array_slice(array_map($twice, $xs), 0, 3); // [2, 4,
PHP5.3からクロージャが利用可能であり、高階関数を積極的に利用して簡潔なコードを心がけたいのですが、一度調べておかないと意外な関数が利用可能であることに気づかなかったりするのでまとめ(個人的によく使う順)。 array_map PHP: array_map - Manual 高階関数で最も代表的と思われるもの。map-reduceのmap。配列の各要素をクロージャを用いたマッピングを行い、別の配列を作ります。 <?php $prices = [100, 200, 300]; $taxInPrices = array_map(function($price) { return $price * 1.08; }, $prices); var_dump($taxInPrices); // array(3) { // [0]=> float(108) // [1]=> float(216) /
はじめに Teto\Functoolszonuexe/php-functoolsは、数日前に「内部状態で頭がパンクして氏なないようにするには関数型言語がオススメ」との噂を真に受けて実装したライブラリだ。計画性のない人生でも、命は惜しい。 正直なところ僕には「関数型言語」が何を意味するのかよくわからないし、実際のところ単なる流行語に過ぎないと認識してるのだけれど、さしあたってPHPで「部分適用をしやすくしよう」を最初の目的に出発した。 このライブラリはイテレータ機能はカバーしないので、Underbar.phpとかGinqとか、好きなのを選べば良いと思ふ。この記事では特定のライブラリには依存せず、配列とPHP標準函数のarray_map, array_reduce, array_filterで説明する。 過去、いくつか関連のありそうな記事を書いたのだけれど、参考になるだろうか。 (たぶんならな
$_SERVER['HTTP_REFERER']が対象ならば、以下で、$query_hashに、$_GETと同様のurldecode済みデータがハッシュ配列として得られます。 $url_hash = parse_url( $_SERVER['HTTP_REFERER'] ); if( array_key_exists( 'query', $url_hash ) and strlen($url_hash['query'])>0 ){ parse_str( $url_hash['query'], $query_hash); } // あとは、$url_hash['host'] によって切り分けて検索キー取り出しをすればよいと思います。 $word = ''; if( preg_match ("/\.google\./", $url_hash['host']) ) { $word = $quer
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く