摘要:源碼年來都沒有動手跑一跑內置的函數。這一跑才發現平時自鳴得意的那些算法是有原生實現的,頓時有一種啪啪啪被打臉的感覺。希望亡羊補牢,為時不晚吧。下面是從里摘抄的歸納對比片段,希望對你有所啟發。
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);
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29075.html
摘要:目前在前端開發所占的比重越來越高,在我們學習和開發的過程中都會去使用。下面把程序員雷雪松對的知識點總結和歸納分享給大家。過濾對同胞元素的搜索。將匹配元素集合縮減為集合中的最后一個元素。返回指定元素相對于其他指定元素的位置。 jQuery目前在Web前端開發所占的比重越來越高,在我們jQuery學習和開發的過程中都會去使用。jQuery幫我們解決了瀏覽器之間JS一些不兼容的地方和簡化了原...
閱讀 3557·2021-08-02 13:41
閱讀 2391·2019-08-30 15:56
閱讀 1520·2019-08-30 11:17
閱讀 1174·2019-08-29 15:18
閱讀 580·2019-08-29 11:10
閱讀 2671·2019-08-26 13:52
閱讀 508·2019-08-26 13:22
閱讀 2949·2019-08-23 15:41