PHPのよくわからん配列メソッド「array_walk」
PHPは歩くよ~~どこまでも~~
一言で言うと自分の好きな配列のメソッドが作成できる。
こんな感じ
第一引数:使う配列。
第二引数:作ったユーザー関数名。""で囲む。
任意で第三引数まで渡せる。4つめ以降は第三引数を配列化して渡す・・しかない。
実はこのメソッドは渡した配列に手を加えることが(そのままでは)できない。
配列自体の値を変えたい場合は「参照渡し」で渡す必要がある。
いろいろサンプルみててこれは使えそうだなって思ったのが「連想配列の配列」において特定のキーを削除するコード。
まあ頭の片隅に置いておこう・・・・(諦め
参考リンク:
array_walk()関数 - PHPリファレンス
【PHP】多次元配列(2次元配列)のキー名指定による列削除 - さとうさんのキロク
一言で言うと自分の好きな配列のメソッドが作成できる。
こんな感じ
<?phpあらかじめ自分で関数を作っておいてarray_walkで呼び出す。
$arrays = array(
"ほげ太郎" => "男",
"ぴよ子" => "女",
"ばー之助" => "男",
"ふーちゃん" => "女"
);
function printArray($arg1, $arg2){
echo "名前:" . $arg2 . " 性別:" . $arg1 . "
";
}
array_walk($arrays, "printArray");
?>
第一引数:使う配列。
第二引数:作ったユーザー関数名。""で囲む。
任意で第三引数まで渡せる。4つめ以降は第三引数を配列化して渡す・・しかない。
実はこのメソッドは渡した配列に手を加えることが(そのままでは)できない。
配列自体の値を変えたい場合は「参照渡し」で渡す必要がある。
いろいろサンプルみててこれは使えそうだなって思ったのが「連想配列の配列」において特定のキーを削除するコード。
ここでは「id」というキーを削除している。結果を見るとちゃんとサックリ消えている。
<?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);
?>
Array正直このメソッドは敷居が高い。PHPにははじめから多くの便利な配列メソッドが用意されているから無理に使う必要は全くないし、このメソッドが使いこなせるレベルまでにまだ達していないというのが現状。
(
[0] => Array
(
[name] => ほげ太郎
[age] => 23
)
[1] => Array
(
[name] => ぴよ子
[age] => 31
)
[2] => Array
(
[name] => ばー之助
[age] => 27
)
)
まあ頭の片隅に置いておこう・・・・(諦め
参考リンク:
array_walk()関数 - PHPリファレンス
【PHP】多次元配列(2次元配列)のキー名指定による列削除 - さとうさんのキロク
- 関連記事
-
- PHPでNoticeエラーだけを非表示にさせる方法
- PHPでTwitterログオン認証ができるように
- PHPで配列を削除する際にヘタにunsetを使うと死ぬ
- PHPで二次元連想配列から特定の項目だけ抜き出す方法
- PHPのよくわからん配列メソッド「array_walk」
≪ DVDStylerで動画からDVDを作成してみる | HOME | PHPで二次元連想配列から特定の項目だけ抜き出す方法 ≫
コメントの投稿
トラックバック
≪ DVDStylerで動画からDVDを作成してみる | HOME | PHPで二次元連想配列から特定の項目だけ抜き出す方法 ≫
プロフィール
Author:ねこ
FC2ブログへようこそ!
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム
QRコード
