array_walk_recursiveでクロージャを使う

January 13, 2012,
tags: array_walk_recursive php クロージャ


このエントリーをはてなブックマークに追加

PHP5.3からはクロージャが使えるようになったんですが、なかなか使う機会がなかったです。
というかクロージャの使いどころが未だに出来てない阿呆な僕だったりするわけです(´・ω・`)

んでもまあそれでもやっぱ使い時もあるのでarray_walk_recursive関数でcallbackとしてクロージャでみたいなおしゃれな事してみました。

よくある$_POSTとか$_GETとかの文字コードを変換する系に適応するとこんな感じっす。

<?php

 $data = array(
 	'hoge' => 'hogehoge',
 	'fuga' => array( 'fuga1', 'fuga2' ),
 );

 $emoji = HTML_Emoji::getInstance();

 array_walk_recursive( $data, function( &$value, $key ) use ( $emoji ){
	$value = $emoji->filter( $value, array('input') );
 });
comments powered by Disqus