首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP数组交集的优化

不过由于手机的参数多,且不同的手机其参数差异大,所以参数表结构通常是纵表(一个参数是一行),而不是横表(一个参数是一列),此时使用若干参数来取结果,通常就是把每个单独参数来取结果,再一起取交集。...先看看通过PHP内置方法array_intersect实现的性能: array_intersect(param_a, param_b): 1, 2, 2 array_intersect(param_b, param_a): 1, 2 也就是说,如果在第一个数组参数中有重复元素的话...> 直觉上,我们肯定会认为内置函数快于自定义函数,但本例中结果恰恰相反: array_intersect: 0.023918151855469 int_array_intersect: 0.0026049613952637...注:测试结果基于PHP5.3.5,不同版本结论可能存在差异 参考:Faster array_intersect

3.8K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PHP数组函数

    数组函数如下: 函数 说明 range(start,end[,step]) 按照指定步长从开始创建到结尾 array(value,value) array(key=>value,key=>value)...ksort($array,flag) 正序,按下标排序 krsort($array,flag) 倒序,按下标排序 shuffle($array) 随机排序 array_reverse($array) 数组反转函数...array_keys($array) 获取数组中所有的键名,返回值为数组 array_values($array) 获取数组中所有的值,返回值为数组 in_array($array,$array) 在数组中查找某个值...array_unshift($array) 在数组开头添加一个或多个元素 array_unique($array,flag) 数组去重函数 unset($array[$key]) 删除指定位置的元素...array_merge_recursive($array1,$array2,$array3) 两个或两个以上的数组合并成一个新数组 array_chunk($array,size) 将数组分割为新的数组

    4.6K20

    PHP数组函数

    PHP数组函数是核心的一部分。...交换数组中的键和值 array_intersect_assoc 带索引检查计算数组交集 array_intersect_key 使用键名比较计算数组交集 array_intersect_uassoc...带索引检查计算数组交集,用回调函数比较索引 array_intersect_ukey 用回调函数比较键名来计算数组交集 array_intersect 计算数组交集 array_key_exists...array_udiff 用回调函数比较数据来计算数组的差集 array_uintersect_assoc 带索引检查计算数组交集,用回调函数比较数据 array_uintersect_uassoc...带索引检查计算数组交集,用单独的回调函数比较数据和索引 array_uintersect 计算数组交集,用回调函数比较数据 array_unique 移除数组中重复的值 array_unshift

    4.1K00

    PHP 数组函数整理

    , 键值相同, 使用用户函数比较 array_udiff_uassoc: 多个数组做差集, 键值相同, 使用用户函数比较 array_udiff: 多个数组做差集, 值相同, 使用用户函数比较 array_flip...: 将数组键值反转 array_map: 对多个数组值通过用户函数进行处理, 返回处理后的新数组 array_intersect_assoc: 多个数组交集, 键值均相同 array_intersect_uassoc...: 多个数组交集, 键值均相同, 使用用户函数比较 array_intersect_key: 多个数组交集, 键相同, 值为第一个数组的值 array_intersect_ukey: 多个数组交集..., 键相同, 值为第一个数组的值, 使用用户函数比较 array_intersect: 多个数组交集, 值相同, 键使用第一个数组的 array_uintersect_assoc: 多个数组交集,...键值相同, 使用用户函数比较 array_uintersect_uassoc: 多个数组交集, 值相同, 使用用户函数比较 array_uintersect: 多个数组交集, 值相同, 用户函数比较

    2.7K20

    PHP精选数组函数

    编程怎么能少的了数组呢,以下是学习PHP时常用的数组处理函数。...在编程中要遵循一个原则就是DRY(Don`t Repeat Yourself)原则,PHP中有大量的函数,都记住这些函数不太现实,但常用的函数还是要熟练使用的,大部分的函数的使用方法可以通过查询PHP的手册来使用...在编程中查手册是少不了的,所以要会学着使用已有的东西,就如PHP中的数组处理函数已经有排序函数了,为什么还要在写东西是费着劲去写冒泡或者堆排或者快排呢。   ...说着说着有点跑偏了,还是来总结一下php中对数组操作的常用函数吧。   ...以下总结的数组常用的函数,可能有些读者会感觉有些少,众人拾柴火焰高吗,如果感觉还有其他常用的数组处理函数,给个评论留下呗,不要吝啬自己的知识嘛,和别人分享东西不是一件很快乐的东西吗。

    94480

    PHP常用函数 常用数组函数

    数组PHP中一个常见的数据类型,其中PHP封装了许多有关数组处理的PHP函数,过去的几个月由于使用框架进行逻辑操作多一些,对数据的操作特别是数组的操作少之又少,好多原生函数都已忘记,今天学习了一下,...下面列出我常常使用到的PHP函数: // 获取数组的长度 return int count($arr); // 使用 foreach 遍历数组 foreach ($arr as $key => $val...'); // 删除数组中首个元素并且返回元素的值 return value array_shift($arr); // 删除数组中末尾元素并且返回元素的值 return value array_pop...($arr); // 用于统计数组中所有值出现的次数 return array array_count_values($arr); // 返回数组所有键名 return array array_keys...'id', $arr); // 返回输入数组中某个单一列的值【二维数组】return value array_column($arr, 'id');

    1.1K20

    php数组函数介绍

    php数组    array_values()函数    返回数组中所有元素的值    in_array()函数    检查数组中是否存在某个值    array_key_exists()函数   检查给定的键名或索引是否存在数组中...   isset()对于数组中为NULL的值不会返回true 而array_key_exists()会    array_flip()函数   交换数组中的键和值    array_reverse()...函数   将原数组的中元素顺序翻转    sizeof()是count()的别名    计算数组中元素数目或对象中的属性个数    array_count_values()   统计数组中所有值出现的次数...   $array = array(1,"php",1,"php",并返回,aseoe);    $new_array = array_count_values($array);    print_r...($new_array);    //输出:Array([1]=>2 [php]=>2 [aseoe]=>1)    array_unique()函数  用于删除数组中重复的值,并返回没有重复值的新数组

    1.1K00

    PHP数组排序函数

    PHP数组排序函数 ---- 特别注意:以下函数都是直接修改原数组 序号 函数 描述 1 sort() 对数组进行升序排列 2 rsort() 对数组进行降序排列 3 asort() 根据键值,对关联数组进行升序排列...4 arsort() 根据键值,对关联数组进行降序排列 5 ksort() 根据键名,对关联数组进行升序排列 6 krsort() 根据键名,对关联数组进行降序排列 2....使用示例 ---- sort():修改原数组,对键值进行升序排列,重新赋予键名 $arr = [4, 1, 5, 3, 2]; rsort():修改原数组,对键值进行降序排列,删除原键名 $arr =...[4, 1, 5, 3, 2]; asort():修改原数组,根据键值对数组单元进行升序排列,保留键名 $arr = [4, 1, 5, 3, 2]; arsort():修改原数组,根据键值对数组单元进行降序排列...,保留键名 $arr = [4, 1, 5, 3, 2]; ksort():修改原数组,根据键名对数组单元进行升序排列,保留键名 $arr = [ krsort():修改原数组,根据键名对数组单元进行降序排列

    2.1K10

    简单PHP数组函数介绍

    1.取数组第一个元素,使用$array[0]呢?还是reset($array); 分析:如果仅限于数值数组,对于一个大小为1的数组,将返回$array[0]。...不过如果数组不是从0开始索引,$array[0]则为空。利用reset()将会重置数组的内部指针,这个函数将会返回第一个数组元素的值。 2.array_pop();获取数组的最后一个元素。...3.想知道一个数组是否包含某个健。 array_key_exists('key',$array); 4.in_array();//数组是否包含某个值。默认行为使用==操作符来比较元素。...5.array_search();//查找一个值在数组中的位置。如果找到返回相应的健,否则返回false。...== 检查,如果数组中位置为0找到值,可能不是你的原意。 另外array_search()只能保证返回其中一个实例,而不一定是第一个实例。

    1K70

    两个数组交集

    两个数组交集 给定两个数组,编写一个函数来计算它们的交集。...target.push(nums1[i]); ++i; ++k; } } return target; }; 思路 比较常规的题目,计算两个数组交集最简单的方式就是遍历数组...,之后分别对于两个数组设立指针进行遍历,对比两个指针所指向的元素,较小的值的指针后移,如果相等则判断是否已经在目标数组中,不在则将其推入数组,之后同时将两个指针后移,最终返回目标数组即可。...首先将两个数组分别从小到大进行排序,之后定义目标数组target,以及两个指针i、k与两个数组的长度n1、n2,定义循环,在两个指针分别小于其指向的目标数组的长度下执行循环,如果i指针指向的值小于k指针指向的值...,不相等则将值推入数组,这样用来进行去重操作,之后将两个指针分别后移,循环结束后返回目标数组即可。

    1.3K30

    PHP 关于数组排序的函数

    php数组排序函数有很多。有按键排序,有按值排序。有升序,有降序。有的排序后改变原数组索引,有的不改变。 关于PHP的排序函数,官方文档给出了下面的一个总结表: ?...以上函数排序结果都是通过引用传递到原数组中去,而不是返回一个新的有序的数组。 一维数组排序 其实PHP内部对于数组排序的实现都比较相似,都是一个模子刻出来的。...再来看看sort,rsort排序函数的源码 ? ? 从上面四个函数的代码对比可以看出,数组排序最终都是通过zend_hash_sort实现的。...但是在PHP中其实还加了一层,限定了函数只能作用在键或者值之上。对于函数usort 和uksort分别是使用自定义函数按值,和按键排序。 ?...用户自定义函数其实是在php_array_user_key_compare,和php_array_user_compare中调用的。

    1.6K20
    领券