[PHP-users 10945] Re: 参照渡し引数を配列に入れて変更する方法

WADA Masashi php-users@php.gr.jp
Fri, 18 Oct 2002 20:32:11 +0900


 和田です。

aiko wrote:
>以下のような”年月日時分秒”を得る関数を作成し、
>月日時分秒が一桁だった場合は、頭に0を追加したいと考えています。
>その際、
>if( $mm < 10)
>{
>	$mm = "0". $mm
>}

 sprintf()を使った方が簡単ですね。

>上記のソースでは
>引数を参照渡しにしているため、配列の中身が変更されるだけで
>実際の引数の中身は変更されません。
>(まあ、当たり前なのですが…)

 最近話題になった array_walk を使うというのはどうですか?

----
$a = array(
	"yaer"  => 2002,
	"month" => 12,
	"day"   => 3,
	"hour"  => 4,
	"min"   => 56,
	"sec"   => 7
);

function padding0(&$item, $key) {
    $item = sprintf("%02d", $item);
}

array_walk($a, 'padding0');
print_r($a);
----

----
和田雅志 (WADA Masashi)
wada@hh.iij4u.or.jp