あまねこ TOP  >  スポンサー広告 >  php >  PHPのよくわからん配列メソッド「array_walk」

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --年--月--日 --:-- ] カテゴリ:スポンサー広告 | TB(-) | CM(-)

PHPのよくわからん配列メソッド「array_walk」

PHPは歩くよ~~どこまでも~~

一言で言うと自分の好きな配列のメソッドが作成できる。
こんな感じ
<?php
$arrays = array(
"ほげ太郎" => "男",
"ぴよ子" => "女",
"ばー之助" => "男",
"ふーちゃん" => "女"
);
function printArray($arg1, $arg2){
echo "名前:" . $arg2 . " 性別:" . $arg1 . "
";
}
array_walk($arrays, "printArray");
?>
あらかじめ自分で関数を作っておいてarray_walkで呼び出す。
第一引数:使う配列。
第二引数:作ったユーザー関数名。""で囲む。
任意で第三引数まで渡せる。4つめ以降は第三引数を配列化して渡す・・しかない。
実はこのメソッドは渡した配列に手を加えることが(そのままでは)できない。
配列自体の値を変えたい場合は「参照渡し」で渡す必要がある。
いろいろサンプルみててこれは使えそうだなって思ったのが「連想配列の配列」において特定のキーを削除するコード。

<?php
//3つの連想配列
$arr0 = array("name" => "ほげ太郎", "id" => "0001","age" => 23);
$arr1 = array("name" => "ぴよ子","id" => "0002","age" => 31);
$arr2 = array("name" => "ばー之助","id" => "0003","age" => 27);
//2次元配列へ
$arrays = array($arr0, $arr1, $arr2);
function deleteArrayCol(&$row, $key, $key_name){
unset($row[$key_name]);
}

$key_name = "id";
array_walk($arrays, "deleteArrayCol", $key_name);
print_r($arrays);
?>
ここでは「id」というキーを削除している。結果を見るとちゃんとサックリ消えている。
Array
(
[0] => Array
(
[name] => ほげ太郎
[age] => 23
)

[1] => Array
(
[name] => ぴよ子
[age] => 31
)

[2] => Array
(
[name] => ばー之助
[age] => 27
)

)
正直このメソッドは敷居が高い。PHPにははじめから多くの便利な配列メソッドが用意されているから無理に使う必要は全くないし、このメソッドが使いこなせるレベルまでにまだ達していないというのが現状。
まあ頭の片隅に置いておこう・・・・(諦め
参考リンク:
array_walk()関数 - PHPリファレンス
【PHP】多次元配列(2次元配列)のキー名指定による列削除 - さとうさんのキロク
関連記事
[ 2013年08月02日 10:29 ] カテゴリ:php | TB(0) | CM(0)
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。