Array_map adalah sebuah fungsi untuk merubah array menjadi array baru yang telah dimodifikasi, Dengan menggunakan teknik array map kita dapat menggantikan pembuatan array menggunakan foreach yang disertai array push didalamnya.

Misalnya, biasanya kita membuat array baru dengan cara looping seperti berikut:

$names = ['mike', 'jordan', 'david'];
foreach($names as $i=>$name) {
   $names[$i] = strtoupper($name);
}

Dengan Array_map kita bisa menuliskan seperti berikut:

$names = array_map('strtoupper', $names);

Hasilnya akan sama

Array ( [0] => MIKE [1] => JORDAN [2] => DAVID )

Pendekatan dengan array map, fungsi Array_Map tersebut sering disebut pendekatan pemrograman dengan Paradigma Pemrograman Declarative.

Sedangkan menggunakan loop semacam foreach, merupakan pendekatan pemrograman dengan Paradigma Pemrograman Imperative.

Salah satu perbedaan utama antara pemrograman imperatif dan pemrograman deklaratif adalah: Pemrograman imperatif berfokus pada algoritma sedangkan pemrograman deklaratif berfokus pada input dan output suatu fungsi.

Contoh lain array map, array_map dapat merubah array multi dimensi dari database, biasanya yang diambil dari fetch_all.

Misalnya , array multi dimensi berbentuk seperti ini :

Kamu ingin merubah nama alamat huruf pertama huruf besar, maka kamu bisa menulisnya seperti ini:


// membuat contoh array multidimensi
$objectuser = 
	Array (
        "0" => Array (	 
              "id_user" => "1",
              "first_name" => "Muhammad",
              "last_name" => "Irvan",
              "phone" => "0873183123182",
              "email" => "muhirfan234@idcodewebs.com",
              "alamat" => "klaten" ),
         "1" => Array (	
              "id_user" => "2",
              "first_name" => "Ani",
              "last_name" => "Farida",
              "phone" => "083213423",
              "email" => "ani@idcodewebs.com",
              "alamat" => "jogjakarta"),
          "2" => Array (
              "id_user" => "3",
              "first_name" => "Mustofa",
              "last_name" => "Bagus",
              "phone" => "085398242984",
              "email" =>"bagus@idcodewebs.com",
              "alamat"=>"jakarta"
              )
         );

$data = array_map(function($datax) {
    $datax['alamat'] = ucfirst($datax['alamat']);
    return $datax;
}, $objectuser);


print_r(json_encode($data));

Jika menggunakan loop foreach seperti ini :

$dataAll_ = [];
foreach ($objectuser as $key => $value) {
	$value[]['alamat'] = ucfirst($value['alamat']);
    $dataAll_[] = $value;
};

print_r(json_encode($dataAll_));

Maka hasilnya akan sama tampak seperti ini:

Contoh lain, object per-ulangan yang datanya didalam object lain seperti ini :

Isi atau value dari key didalam dataResults ingin diubah menjadi sebuah url lengkap, Maka kira-kira bisa ditulis seperti ini:

// ambil data dari table 
$dataAll = $this->dbRetrieveAll($id_cat, $limit, $page_no, 1);      

$data = array_map(function($datax) {
            if (!empty($datax['news_image'])) {
                $datax['news_image'] = Config::$base_url_public."/modules/appBerita/images/".$datax['news_image'];
            }
            return $datax;
 }, $dataAll['dataResults']);

 // return $data;
 $dataAll['dataResults'] = $data;

 return $dataAll;

Maka hasilnya seperti ini :

Seperti itulah salah satu contoh penggunaan array_map, penggunaan array_map semacam itu sudah cukup umum digunakan pada Laravel, untuk memanipulasi output dari database. Karena dilaravel ada laravel map collection. Sekian.