摘要:前言我自己用此类回调函数,来替代纯粹是用为代码的简洁性,让代码更好看。我有点代码小洁癖当迭代处理一个一维索引数组时,在回调函数内是无法获取到当时元素索引的。目的在回调体内获取迭代关联数组的下标值。
前言:我自己用此类回调函数,来替代 foreach 纯粹是用为代码的简洁性,让代码更好看。(我有点代码小洁癖~)
1、array_reduce
当迭代处理一个一维索引数组时,在回调函数内是无法获取到当时元素索引的。所以想要获取时,需得借助一个外部变量。
目的:把 $arr 遍历到 标签内(就是拼接option字符串)
$arr = [ 0 => "全部", 1 => "a", 2 => "b", 3 => "c", ];
解决:
$index = 0; $options = array_reduce($data, function($carry, $item) use (&$index){ ## $index则为当前两个元素 $item 的索引 return $carry . ""; }, ""); var_dump($options);
输出为
2、array_map(callable $callback , array $array1 [, array $... ] )
很多情况下,迭代的数据一般为一个 二维关联数组,但 array_map 本身在回调函数的函数体内无法获取到 关联数组的下标 的。
目的:在回调体内获取迭代关联数组的下标值。
解决:可以把关联数组的下标通过 array_map()的第三个形参把下标传进去。
$arr = [ "a" => 1, "b" => 2, "c" => 3 ]; $res = array_map(function($item, $key){ echo "$arr[" . $key . "]=" . $item . "
"; }, $arr, array_keys($arr));
输出结果为
$arr[a]=1 $arr[b]=2 $arr[c]=3
题外话,有个典型的应用,也可以这样用。打个比方,如入库商品。
辣条 [spec] => Array ( ["attr"] => Array ( [0] => 颜色 [1] => 口感 [2] => 副作用 ) ["value"] => Array ( [0] => 红色 [1] => 辣 [2] => The `菊花` is hot ) ) ) */ ## 处理规格信息,使其可以批量添加 $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 ) ) ) */ # 这样处理好数组就特别方便,数组中 `商品的规格` 的就可以批量添加了 参考资料:laravel框架代码 - 集合 的封装 -> 传送门
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/29262.html
摘要:中对多维数组特定列的提取,是个很常用的功能,正因为如此,在版本之后,添加了一个专用的函数。变种方法如下,意为把数组的每一项值的开头值移出,并获取移除的值作为新数组。注意此时新数组的键仍是原数组的键,如下。 PHP中对多维数组特定列的提取,是个很常用的功能,正因为如此,PHP在5.5.0版本之后,添加了一个专用的函数array_column()。当然,如果你的PHP版本低于5.5.0,就...
摘要:额外的数组元素可以象下面这样追加如果你正在处理数字索引数组,你可能想使用显示命名的函数前置和追加元素,如和函数,但这些函数不能操作关联数组。 在使用 PHP 进行开发的过程中,或早或晚,您会需要创建许多相似的变量,这时候你可以把数据作为元素存储在数组中。数组中的元素都有自己的 ID,因此可以方便地访问它们。 关联数组 关联数组,它的每个 ID 键都关联一个值。在存储有关具体命名的值的数...
摘要:遍历完成后返回一个新的数组你可以同时处理多个数组你好吗原罪你好吗原罪是的,遍历的次数以最长的数组为准。假如你处理的是二维数组,处理方式也是万变不离其宗的。 在PHP的日常操作中,数组是最常出现的结构,而我们几乎每天都在处理数组相关的内容。那么问题来了,你一般怎么遍历并处理数组。 1、foreach 很熟悉吧,是不是你的最爱? $arr = [a, b, c]; foreach ($a...
摘要:说明获取数组中部分的或者所有的键名说明为数组的每个元素应用回调函数说明合并一个或者多个数组说明对多个数组或者多维数组进行排序具体可查看官网说明弹出数组中最后一个单元说明计算数组中所有值的乘积之前因为一些事,就没有每天都更,以后会坚持保持 2019-02-27 array_keys() array_keys ( array $array [, mixed $search_value = ...
阅读 2054·2021-10-08 10:04
阅读 3079·2021-09-22 10:02
阅读 2225·2019-08-30 15:56
阅读 825·2019-08-30 15:54
阅读 921·2019-08-30 15:54
阅读 1275·2019-08-30 15:53
阅读 2508·2019-08-30 11:21
阅读 3557·2019-08-30 10:56