摘要:源码年来都没有动手跑一跑内置的函数。这一跑才发现平时自鸣得意的那些算法是有原生实现的,顿时有一种啪啪啪被打脸的感觉。希望亡羊补牢,为时不晚吧。下面是从里摘抄的归纳对比片段,希望对你有所启发。
Demo源码
3年来都没有动手跑一跑PHP内置的Array函数。
这一跑才发现平时自鸣得意的那些算法是有原生实现的,顿时有一种啪啪啪被打脸的感觉。
希望亡羊补牢,为时不晚吧。
下面是从Demo里摘抄的归纳对比片段,希望对你有所启发。
祝好。
/** * 8个计算数组差集的函数 * todo u有什么用? * 只对比key: * array_diff_key() 通过对比key得到数组的差集 * array_diff_ukey() 通过对比key获得数组的差集,key计算使用用户自定义函数 * 只对比value: * array_diff() 通过对比value得到数组的差集 * array_udiff() 通过对比value获得数组的差集,value计算使用用户自定义函数 * 同时对比key和value: * array_diff_assoc() 同时对比key和value获得数组的差集 * array_diff_uassoc() 同时对比key和value获得数组的差集,key计算使用用户自定义函数 * array_udiff_assoc() 同时对比key和value获得数组的差集,value计算使用用户自定义函数 * array_udiff_uassoc() 同时对比key和value获得数组的差集,key和value计算使用用户自定义函数 * diff代表对比value * 后面跟key,代表对比key * 后面跟assoc,代表同时对比key和value * udiff表示value对比使用自定义函数 * ukey表示key对比使用自定义函数 * uassoc表示key对比使用自定义函数 */ /** * 8个计算数组交集的函数 * todo u有什么用? * 只对比key: * array_intersect_key() 通过对比key得到数组的交集 * array_intersect_ukey() 通过对比key获得数组的交集,key计算使用用户自定义函数 * 只对比value: * array_intersect() 通过对比value得到数组的交集 * array_uintersect() 通过对比value获得数组的交集,value计算使用用户自定义函数 * 同时对比key和value: * array_intersect_assoc() 同时对比key和value获得数组的交集 * array_intersect_uassoc() 同时对比key和value获得数组的交集,key计算使用用户自定义函数 * array_uintersect_assoc() 同时对比key和value获得数组的交集,value计算使用用户自定义函数 * array_uintersect_uassoc() 同时对比key和value获得数组的交集,key和value计算使用用户自定义函数 * diff代表对比value * 后面跟key,代表对比key * 后面跟assoc,代表同时对比key和value * udiff表示value对比使用自定义函数 * ukey表示key对比使用自定义函数 * uassoc表示key对比使用自定义函数 * 以下只展示3个求交集最基础的函数,另外5个省略 */ /** * 一共9个排序函数 * 只对key排序 * ksort * krsort * usort * 只对value排序 * sort * rsort * usort * 同时对key和value排序 * asort * arsort * uasort * k 按k排序 * r 倒序 * a 同时对key和value排序 * u 按用户自定义函数排序 */ e.g. /** * array_filter * 用回调函数过滤数组中的单元 * 1. 返回结果保留key * 2. 三个参数,input_array、callback、flag * 3. input_array为要过滤的函数 * 4. callback为用户自定义的过滤函数 * 5. flag有两个值 * ARRAY_FILTER_USE_BOTH: 对应的callback有两个参数 * ARRAY_FILTER_USE_KEY: 对应的callback只有一个参数 * 6. 此函数使用方式非常灵活,可以做许多有趣的事情,比如去掉数组中重复的值和并且 * @return array * @author Sch0ng@163.com */ $arrayFilter = function () { $input_array = ["foo", false, -1, null, "", [], 0, 0.00]; $filtered_array = array_filter($input_array, function ($v, $k) { return $v; }, ARRAY_FILTER_USE_BOTH); return $filtered_array; }; self::printR($arrayFilter);
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/29075.html
摘要:目前在前端开发所占的比重越来越高,在我们学习和开发的过程中都会去使用。下面把程序员雷雪松对的知识点总结和归纳分享给大家。过滤对同胞元素的搜索。将匹配元素集合缩减为集合中的最后一个元素。返回指定元素相对于其他指定元素的位置。 jQuery目前在Web前端开发所占的比重越来越高,在我们jQuery学习和开发的过程中都会去使用。jQuery帮我们解决了浏览器之间JS一些不兼容的地方和简化了原...
阅读 3513·2021-08-02 13:41
阅读 2289·2019-08-30 15:56
阅读 1501·2019-08-30 11:17
阅读 1159·2019-08-29 15:18
阅读 564·2019-08-29 11:10
阅读 2644·2019-08-26 13:52
阅读 491·2019-08-26 13:22
阅读 2927·2019-08-23 15:41