摘要:前言我自己用此類回調(diào)函數(shù),來替代純粹是用為代碼的簡潔性,讓代碼更好看。我有點(diǎn)代碼小潔癖當(dāng)?shù)幚硪粋€一維索引數(shù)組時(shí),在回調(diào)函數(shù)內(nèi)是無法獲取到當(dāng)時(shí)元素索引的。目的在回調(diào)體內(nèi)獲取迭代關(guān)聯(lián)數(shù)組的下標(biāo)值。
前言:我自己用此類回調(diào)函數(shù),來替代 foreach 純粹是用為代碼的簡潔性,讓代碼更好看。(我有點(diǎn)代碼小潔癖~)
1、array_reduce
當(dāng)?shù)幚硪粋€一維索引數(shù)組時(shí),在回調(diào)函數(shù)內(nèi)是無法獲取到當(dāng)時(shí)元素索引的。所以想要獲取時(shí),需得借助一個外部變量。
目的:把 $arr 遍歷到 標(biāo)簽內(nèi)(就是拼接option字符串)
$arr = [ 0 => "全部", 1 => "a", 2 => "b", 3 => "c", ];
解決:
$index = 0; $options = array_reduce($data, function($carry, $item) use (&$index){ ## $index則為當(dāng)前兩個元素 $item 的索引 return $carry . ""; }, ""); var_dump($options);
輸出為
2、array_map(callable $callback , array $array1 [, array $... ] )
很多情況下,迭代的數(shù)據(jù)一般為一個 二維關(guān)聯(lián)數(shù)組,但 array_map 本身在回調(diào)函數(shù)的函數(shù)體內(nèi)無法獲取到 關(guān)聯(lián)數(shù)組的下標(biāo) 的。
目的:在回調(diào)體內(nèi)獲取迭代關(guān)聯(lián)數(shù)組的下標(biāo)值。
解決:可以把關(guān)聯(lián)數(shù)組的下標(biāo)通過 array_map()的第三個形參把下標(biāo)傳進(jìn)去。
$arr = [ "a" => 1, "b" => 2, "c" => 3 ]; $res = array_map(function($item, $key){ echo "$arr[" . $key . "]=" . $item . "
"; }, $arr, array_keys($arr));
輸出結(jié)果為
$arr[a]=1 $arr[b]=2 $arr[c]=3
題外話,有個典型的應(yīng)用,也可以這樣用。打個比方,如入庫商品。
辣條 [spec] => Array ( ["attr"] => Array ( [0] => 顏色 [1] => 口感 [2] => 副作用 ) ["value"] => Array ( [0] => 紅色 [1] => 辣 [2] => The `菊花` is hot ) ) ) */ ## 處理規(guī)格信息,使其可以批量添加 $arr["spec"] = array_map(function($item, $key){ return [ "attr" => $key, "value" => $item, ]; }, $arr["spec"]["value"], $arr["spec"]["attr"]); print_r($arr); /* Array ( [goods] => 辣條 [spec] => Array ( [0] => Array ( [attr] => 顏色 [value] => 紅色 ) [1] => Array ( [attr] => 口感 [value] => 辣 ) [2] => Array ( [attr] => 副作用 [value] => The `菊花` is hot ) ) ) */ # 這樣處理好數(shù)組就特別方便,數(shù)組中 `商品的規(guī)格` 的就可以批量添加了 參考資料:laravel框架代碼 - 集合 的封裝 -> 傳送門
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/29262.html
摘要:李尋歡索引數(shù)組索引數(shù)組,元素的值和下標(biāo)不存在邏輯關(guān)系,而下標(biāo)只表示值索引位置。鍵和值,同時(shí)向下移動指針獲得元素信息,返回的是,關(guān)聯(lián)和索引數(shù)組其中關(guān)聯(lián)數(shù)組部分。 數(shù)組 數(shù)據(jù)由元素組成,元素由鍵和值組成 數(shù)組分類 關(guān)聯(lián)數(shù)組關(guān)聯(lián)數(shù)組,元素的下標(biāo)與元素的值存在邏輯上的關(guān)系,稱之為關(guān)聯(lián)數(shù)組。指的是,鍵和值之間存在管理。 $a1 = array(name => 李尋歡, age => 34); ...
摘要:中對多維數(shù)組特定列的提取,是個很常用的功能,正因?yàn)槿绱耍诎姹局螅砑恿艘粋€專用的函數(shù)。變種方法如下,意為把數(shù)組的每一項(xiàng)值的開頭值移出,并獲取移除的值作為新數(shù)組。注意此時(shí)新數(shù)組的鍵仍是原數(shù)組的鍵,如下。 PHP中對多維數(shù)組特定列的提取,是個很常用的功能,正因?yàn)槿绱耍琍HP在5.5.0版本之后,添加了一個專用的函數(shù)array_column()。當(dāng)然,如果你的PHP版本低于5.5.0,就...
摘要:額外的數(shù)組元素可以象下面這樣追加如果你正在處理數(shù)字索引數(shù)組,你可能想使用顯示命名的函數(shù)前置和追加元素,如和函數(shù),但這些函數(shù)不能操作關(guān)聯(lián)數(shù)組。 在使用 PHP 進(jìn)行開發(fā)的過程中,或早或晚,您會需要創(chuàng)建許多相似的變量,這時(shí)候你可以把數(shù)據(jù)作為元素存儲在數(shù)組中。數(shù)組中的元素都有自己的 ID,因此可以方便地訪問它們。 關(guān)聯(lián)數(shù)組 關(guān)聯(lián)數(shù)組,它的每個 ID 鍵都關(guān)聯(lián)一個值。在存儲有關(guān)具體命名的值的數(shù)...
摘要:遍歷完成后返回一個新的數(shù)組你可以同時(shí)處理多個數(shù)組你好嗎原罪你好嗎原罪是的,遍歷的次數(shù)以最長的數(shù)組為準(zhǔn)。假如你處理的是二維數(shù)組,處理方式也是萬變不離其宗的。 在PHP的日常操作中,數(shù)組是最常出現(xiàn)的結(jié)構(gòu),而我們幾乎每天都在處理數(shù)組相關(guān)的內(nèi)容。那么問題來了,你一般怎么遍歷并處理數(shù)組。 1、foreach 很熟悉吧,是不是你的最愛? $arr = [a, b, c]; foreach ($a...
摘要:說明獲取數(shù)組中部分的或者所有的鍵名說明為數(shù)組的每個元素應(yīng)用回調(diào)函數(shù)說明合并一個或者多個數(shù)組說明對多個數(shù)組或者多維數(shù)組進(jìn)行排序具體可查看官網(wǎng)說明彈出數(shù)組中最后一個單元說明計(jì)算數(shù)組中所有值的乘積之前因?yàn)橐恍┦拢蜎]有每天都更,以后會堅(jiān)持保持 2019-02-27 array_keys() array_keys ( array $array [, mixed $search_value = ...
閱讀 2060·2021-10-08 10:04
閱讀 3089·2021-09-22 10:02
閱讀 2241·2019-08-30 15:56
閱讀 833·2019-08-30 15:54
閱讀 928·2019-08-30 15:54
閱讀 1283·2019-08-30 15:53
閱讀 2514·2019-08-30 11:21
閱讀 3563·2019-08-30 10:56