LoginSignup
3
0

More than 5 years have passed since last update.

【PHP】配列のすべての要素を一括で処理するarray_walk()関数とarray_map()関数

Posted at

こんにちは。今回は、array_walk()関数とarray_map()関数の2つを利用して、配列のすべての要素を一括で処理してみようと思います。

array_walk()の例

  1. リスト表示(ul,li)する関数を定義する
  2. 配列を定義(今回は一つの配列)、まずはprint_rで出力してみる
  3. array_walk()で関数の中で出力する

出力結果
 2018-05-15 7.47.27.png

array_walk.php

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>配列のすべての要素を一括処理したい(array_walk)</title>
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
</head>
<body>
<div>
    <?php
    // ユーザー定義関数
    function printIdList($value, $index) {
        echo "<ul>";
        echo "<li>No:".$index."</li>";
        echo "<li>Id".$value."</li>";
        echo "<ul>";
    }

    echo "<p>対象の配列</p>";
    // 配列を$idListに定義
    $idList = array("terurou","taro","jiro");
    print_r($idList);
    echo "</p>";

    // array_walk()->配列の各要素の対して指定した関数を実行する
    // array_walk(指定した配列,ユーザー定義関数);
    echo "<p>一括処理した結果</p>";
    array_walk($idList, 'printIdList');
 ?>
 </div>
</body>
</html>

array_map()の例

  1. リスト表示(ul,li)する関数を定義する
  2. 配列を定義(今回は複数の配列を用意)、まずはprint_rで出力してみる
  3. array_walk()で関数の中で出力する

出力結果
 2018-05-15 7.48.19.png

array_map.php

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>配列のすべての要素を一括処理したい(array_map)</title>
</head>
<body>
<?php 

// ユーザー定義関数
function printUserData($id,$name,$age) {
    echo "<ul>";
    echo "<li>ID:".$id."</li>";
    echo "<li>Name:".$name."</li>";
    echo "<li>Age:".$age."</li>";
    echo "</ul>";
}

$idList = array("terurou","taro","jiro");
$nameList = array("八木照郎","山田太郎","鈴木次郎");
$ageList = array(25,72,40);

echo "<p>1つ目の配列:";
print_r($idList);
echo "</p>";

echo "<p>2つ目の配列:";
print_r($nameList);
echo "</p>";

echo "<p>3つ目の配列:";
print_r($ageList);
echo "</p>";

echo "<p>array_map()で一括処理した結果</p>";
// array_map(関数名,配列1,配列2,...)
array_map("printUserData",$idList,$nameList,$ageList);

 ?>
</body>
</html>

array_walkは、array_walk(配列,関数);
であるのに対し、
array_mapは、array_map(関数,配列);
であるのに注意してください。

参考文献

PHP逆引きレシピ

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0