成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

PHP:數(shù)組操作函數(shù)array_walk()和array_map()-創(chuàng)新互聯(lián)

 array_map()的函數(shù)原型為:array array_map ( callback callback, array arr1 [, array ...] )

創(chuàng)新互聯(lián)建站專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、龍井網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為龍井等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

 array_map() 返回一個(gè)數(shù)組,該數(shù)組包含了arr1中的所有單元經(jīng)過callback作用過之后的單元。callback接受的參數(shù)數(shù)目應(yīng)該和傳遞給 array_map() 函數(shù)的數(shù)組數(shù)目一致。

  callback函數(shù)就是array_map所將調(diào)用來處理元素單元函數(shù),應(yīng)以字符串的形式將函數(shù)名傳遞給array_map()

 如:(php官方手冊(cè)所給出的代碼)

        <?php
            functioncube($n)
            {
                return($n*$n* $n);
            }

            $a= array(1, 2,3,4,5);
            $b =array_map("cube", $a);
            print_r($b);
        ?>

    cube即為callback函數(shù) ,且array_map的callback函數(shù)的參數(shù)每一個(gè)應(yīng)均為數(shù)組的元素,也就是array_map()除了第一個(gè)參數(shù)外,其余參數(shù)應(yīng)均為數(shù)組且應(yīng)與回調(diào)函數(shù)的參數(shù)個(gè)數(shù)一樣.

<?php //callback 1 function  check($n) { //array_mapcallback的參數(shù)為數(shù)組的元素, //也就是callback中有幾個(gè)參數(shù)array_map就應(yīng)傳入幾個(gè)數(shù)組 if($n>100) { return  $n-10; }else  { return  $n; } } //callback 2 function  add($a,$b) { return  $a+$b; } $arr = array(101,85,35,105,99,109);// var_dump($arr); $brr = array(1,2,3,4,5,6); $arr = array_map("check", $arr); $brr = array_map("add", $arr,$brr); print_r($arr); echo "<br/>"; print_r($brr); ?>

輸出結(jié)果

array (size=6)   0 => int 101   1 => int 85   2 => int 35   3 => int 105   4 => int 99   5 => int 109

Array (   [0] => 91   [1] => 85   [2] => 35   [3] => 95   [4] => 99   [5] => 99 )
Array (   [0] => 92   [1] => 87   [2] => 38   [3] => 99   [4] => 104   [5] => 105 )

========================================================================================

              我是分割線

========================================================================================


  與array_map()不同array_walk()的返回值是布爾型,也就是如果想要修改數(shù)組的數(shù)據(jù),應(yīng)該在callback函數(shù)上做手腳(也就是引用)

  array_walk()會(huì)將數(shù)組的元素的值,以及鍵值傳遞給callback函數(shù),此外還允許傳遞其類型的數(shù)據(jù)給callback函數(shù).

  以下為其原型以及官方文檔:

bool array_walk ( array &array, callback funcname [, mixed userdata] )

如果成功則返回 TRUE,失敗則返回 FALSE。

將用戶自定義函數(shù)funcname應(yīng)用到array數(shù)組中的每個(gè)單元。典型情況下funcname接受兩個(gè)參數(shù)。array參數(shù)的值作為第一個(gè),鍵名作為第二個(gè)。如果提供了可選參數(shù)userdata,將被作為第三個(gè)參數(shù)傳遞給 callbackfuncname。

如果funcname函數(shù)需要的參數(shù)比給出的多,則每次 array_walk() 調(diào)用funcname時(shí)都會(huì)產(chǎn)生一個(gè) E_WARNING 級(jí)的錯(cuò)誤。這些警告可以通過在 array_walk() 調(diào)用前加上 PHP 的錯(cuò)誤操作符 @ 來抑制,或者用 error_reporting()。

注:如果funcname需要直接作用于數(shù)組中的值,則給funcname的第一個(gè)參數(shù)指定為引用。這樣任何對(duì)這些單元的改變也將會(huì)改變?cè)紨?shù)組本身。

注:將鍵名和 userdata 傳遞到funcname中是 PHP 4.0 新增加的。

array_walk() 不會(huì)受到array內(nèi)部數(shù)組指針的影響。array_walk() 會(huì)遍歷整個(gè)數(shù)組而不管指針的位置。

用戶不應(yīng)在回調(diào)函數(shù)中改變?cè)摂?shù)組本身。例如增加/刪除單元,unset 單元等等。如果 array_walk() 作用的數(shù)組改變了,則此函數(shù)的的行為未經(jīng)定義,且不可預(yù)期。

  以下是我自己寫的一個(gè)簡單的例子:

<?php function alter(&$value,$key,$userdata) {         //在此處不對(duì)元素值做任何修改,如果想要修改則需像我一樣給參數(shù)加上引用 echo $key.$userdata.$value.'<br/>'; } $arr = array("a"=>"A","b"=>"B","c"=>"C","d"=>"D"); //array_walk -- 對(duì)數(shù)組中的每個(gè)成員應(yīng)用用戶函數(shù) //函數(shù)原型:bool array_walk ( array &array, callback funcname [, mixed userdata] ) //第一個(gè)參數(shù)為 數(shù)組 //第二個(gè)參數(shù)為 callback函數(shù)名, //第三個(gè)參數(shù)為 可選參數(shù)(將傳遞給所callback的函數(shù)) //============================================================================== //array_map()將傳遞callback 函數(shù)的 的 //第一個(gè)參數(shù)是元素的值,如需修改則應(yīng)加上 &操作符 //第二個(gè)參數(shù)為鍵值,如需修改則作如上處理 //第三個(gè)參數(shù)為用戶自己傳遞給函數(shù)的數(shù)據(jù)(即array_walk()中的第三個(gè)參數(shù)) array_walk($arr,'alter',".is."); ?>

輸出
a.is.A
b.is.B
c.is.C
d.is.D

----------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------




另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享標(biāo)題:PHP:數(shù)組操作函數(shù)array_walk()和array_map()-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://jinyejixie.com/article34/ccscse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、微信公眾號(hào)、品牌網(wǎng)站設(shè)計(jì)、動(dòng)態(tài)網(wǎng)站虛擬主機(jī)、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營
六盘水市| 江永县| 定州市| 长兴县| 桂平市| 河西区| 阿巴嘎旗| 庆阳市| 西盟| 梅河口市| 柞水县| 高雄县| 南乐县| 马公市| 巨野县| 余庆县| 兴安盟| 慈利县| 永靖县| 隆林| 墨脱县| 慈溪市| 通海县| 石景山区| 靖安县| 渝北区| 湄潭县| 六盘水市| 泾阳县| 叶城县| 裕民县| 改则县| 佛坪县| 安龙县| 万盛区| 大渡口区| 双流县| 平阴县| 滦平县| 喀什市| 永城市|