首頁  >  文章  >  後端開發  >  php中的array_map()函數細節

php中的array_map()函數細節

PHP中文网
PHP中文网原創
2017-11-01 09:58:021260瀏覽

array_map 將回呼函數作用到給定陣列的單元上

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

array_map() 函數將使用者自訂函數作用到陣列中的每個值上,並傳回使用者自訂函數作用後的帶有新值的陣列。

回呼函數接受的參數數目應該和傳遞給 array_map() 函數的陣列數量一致。

callback    必需。對每個數組的每個元素作用的回調函數。    

arr1    必需。將被回呼函數(callback)執行的陣列。    

array    可選。將被回呼函數(callback)執行的陣列列表。    

傳回值

傳回數組,該數組的每個元素都是數組(arr1)裡面的每個元素經過回呼函數(callback)處理了的。

實例:

<?php
 function cube ( $n )
{
  return( $n * $n * $n );
}
 
 $a = array( 1 , 2 , 3 , 4 , 5 );
 $b = array_map ( "cube" , $a );
 print_r ( $b );
 ?>

輸出結果:

<?php
    Array
    (
      [0] => 1
      [1] => 8
      [2] => 27
      [3] => 64
      [4] => 125
    )
?>

#將函數作用到陣列中的每個值上,每個值都乘以本身,並傳回帶有新的值的陣列:

<?php
function myfunction($v)
{
return($v*$v);
}
$a=array(1,2,3,4,5);
print_r(array_map("myfunction",$a));
?>

定義和用法

array_map() 函數將使用者自訂函數作用到陣列中的每個值上,並傳回使用者自定義函數作用後的帶有新的值的陣列。

提示:您可以向函數輸入一個或多個陣列。

array_map(myfunction,array1,array2,array3...)

myfunction    必要。使用者自訂函數的名稱,或是 null。    

array1    必要。規定數組。    

array2    可選。規定數組。    

array3    可選。規定數組。    

傳回包含使用者自訂函數作用後的 array1 的值的陣列。

使用一個使用者自訂函數來改變陣列的值:

<?php
    function myfunction($v)
    {
    if ($v==="Dog")
    {
    return "Fido";
    }
    return $v;
    }
    $a=array("Horse","Dog","Cat");
    print_r(array_map("myfunction",$a));
?>

使用兩個陣列:

<?php
    function myfunction($v1,$v2)
    {
    if ($v1===$v2)
    {
    return "same";
    }
    return "different";
    }
    $a1=array("Horse","Dog","Cat");
    $a2=array("Cow","Dog","Rat");
    print_r(array_map("myfunction",$a1,$a2));
?>

將陣列中值的所有字母改為大寫:

<?php
    function myfunction($v) 
    {
    $v=strtoupper($v);
    return $v;
    }
    $a=array("Animal" => "horse", "Type" => "mammal");
    print_r(array_map("myfunction",$a));
?>

將函數名稱賦值為null 時:

<?php
$a1=array("Dog","Cat");
$a2=array("Puppy","Kitten");
print_r(array_map(null,$a1,$a2));
?>


#

以上是php中的array_map()函數細節的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn