PHP関数のarray_map関数

WBOY
リリース: 2016-06-23 13:03:04
オリジナル
1037 人が閲覧しました

ここでは、PHP 言語でよく使われる配列演算関数、array_map 関数を紹介します。私はこの関数に初めて触れたとき、その強力な機能に衝撃を受け、さらに面白く感じました。 PHP言語について。

説明

PHP 関数について学ぶのに最適な場所は、PHP マニュアルのこの関数の説明です:

array array_map ( callable $callback , array $arr1 [, array $... ] )

array_map() は、コールバックが適用された後、arr1 内のすべてのユニットを含む配列を返します。コールバックによって受け入れられる引数の数は、array_map() 関数に渡される配列の数と一致する必要があります。つまり、$arr1 配列の各ユニットの値は、コールバック関数を通じて、新しい配列の対応するユニットの値として新しい配列に保存されます。もう 1 つの優れた点は、この関数が複数の配列を渡すことができることです。つまり、定義したコールバック関数では、複数の配列の各ユニットの値を同時に操作できます

操作例

例子1:<?php    function cube($n){    return $n*$n;}$num = array(1,2,3,4,5);var_dump(array_map("cube", $num));      输出:array(5) { [0]=> int(1) [1]=> int(4) [2]=> int(9) [3]=> int(16) [4]=> int(25) }
ログイン後にコピー
例子2(匿名函数也有效):<?php    $func = function($n,$m){    return ("这个数组的第 $n 个位置的值是 $m <br>");};$a = array(1, 2, 3, 4, 5);$b = ['整型:1','整型:2','整型:3','整型:4','整型:5'];var_dump(array_map($func,$a,$b));输出:array(5) {[0]=> string(55) "这个数组的第 1 个位置的值是 整型:1 "[1]=> string(55) "这个数组的第 2 个位置的值是 整型:2 "[2]=> string(55) "这个数组的第 3 个位置的值是 整型:3 "[3]=> string(55) "这个数组的第 4 个位置的值是 整型:4 "[4]=> string(55) "这个数组的第 5 个位置的值是 整型:5 "}
ログイン後にコピー

2番目の匿名関数内のステートメントに注意してください。この例には、$n と $m という 2 つのパラメーターが渡されるため、二重引用符を使用する必要があります。PHP では、パラメーターによって表される値を解析できるように、二重引用符内の文字がアナライザーによって解析されます。外。

最後は、laravel フレームワークで PHP を開発するときによく発生する問題です。取得されたデータがオブジェクト型 (ObjClass) であるという状況が発生します。現時点では、キーを直接使用して特定のデータを取得することはできません。現時点で一般的に使用される方法は、パラメータを true に設定すると配列型のデータを返すことができます。このときに返される配列は、

$arr = array(    0 => array(        'id' => 11111    ),    1 => array(        'id' => 22222    ),    2 => array(        'id' => 33333    ));
ログイン後にコピー
のような 2 レベルの配列です

現時点では、foreach を使用して ID を取得できますが、array_map() メソッドを使用することもできます

$id_arr = array_map(function($v) {    return $v['id'];}, $arr);输出:array(3) {[0]=> int(111) [1]=> int(222) [2]=> int(333) }
ログイン後にコピー

ただし、foreach は配列を非常に高速に走査しますこれら 2 つの方法は個人的な希望に依存します

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート