【 PHP 】PHP8に入門してみた 122日目 PHPの基本 ( 組み込み関数 配列要素を1つずつ処理 その2 )
PHP8技術者認定初級試験 が始まるようなので 試験に向けて (できるだけ)勉強しようと思います! 使用する書籍は独習PHP 第4版(山田 祥寛)|翔泳社の本 (shoeisha.co.jp) となります。
組み込み関数
foreach的な?でも違う高度な関数
array_walk関数でwalk対象の値を書き換える。
array_wakl
関数を使えばwalk対象の要素を書き換えることができます。
Java
ではこんな芸当できないような気がします。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PHPの基本</title>
</head>
<body>
<?php
$keys = ['十', '百', '千', '万', '億', '兆', '京', '垓', '𥝱', '穣', '溝', '澗', '正', '載', '極', '恒河沙', '阿僧祇', '那由他', '不可思議', '無量大数'];
$data = ['那由他', '京', '垓', '億', '無量大数'];
array_walk($data, function (/*アンパサンドを付けるのがポイント→*/&$value) {
$value = "すごいぞ${value}!";
});
print_r($data);
print '<br />'
?>
</body>
</html>
array_walk_recursive
を使えば配列のネスト(入れ子)も処理できる
ネストされた配列だってarray_walk_recursive
を使えば簡単に処理できます!
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PHPの基本</title>
</head>
<body>
<?php
$sum = 0;
$count = 0;
$data = [5, 1, [10, -3]];
// 配列内の要素を順に加算&カウント
array_walk_recursive($data, function ($value) use (&$sum, &$count) {
$sum += $value;
$count++;
});
$average = $sum / $count;
print "要素の個数 : ${count}";
print "<br />";
print "合計値 : ${sum}";
print "<br />";
print "平均値 : ${average}";
?>
</body>
</html>
すごい!のすが・・・どうやって再帰しているのか、なにがどうなっているのか不明です🤔
メモ
なんということでしょう!
ディスカッション
コメント一覧
まだ、コメントがありません