【PHP获取多维数据的交集与差集】教程文章相关的互联网学习教程文章

PHP数组交集的优化代码分析

不过由于手机的参数多,且不同的手机其参数差异大,所以参数表结构通常是纵表(一个参数是一行),而不是横表(一个参数是一列),此时使用若干参数来取结果,通常就是把每个单独参数来取结果,再一起取交集。 假定每个参数会包含一千个左右的唯一结果(id int),以此为前提来模拟生成一些数据: 代码如下:<?php $rand = function() { $result = array(); for ($i = 0; $i < 1000; null) { $value = mt_rand(1, 10000); if (!iss...

php 归并排序 数组交集

代码如下:$a=array(1,2,3,4,22); $b=array(1,3,4,11,22,23); f($a, $b, 5, 6, $t); print_r($t); function f(&$a, &$b, $n, $m, &$t){ $i=0;$j=0; while($i<$n && $j<$m){ if($a[$i]==$b[$j]){ echo $a[$i]." ";//交集 $t[]=$a[$i++]; $t[]=$b[$j++]; }elseif($a[$i]>$b[$j]){ $t[]=$b[$j++]; }else{ $t[]=$a[$i++]; } } while($i<$n){ $t[]=$a[$i++]; } while($j<$m){ $t[]=$b[$j++]; } }

PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题

返回一个交集共有元素的数组(只是数组值得比较)、array_intersect_assoc()函数是将键值和值绑定,一起比较交集部分、array_intersect_key()函数是将两个数组的键值进行比较,返回键值交集的数组。但实际应用中也遇到了一些小问题,正如下:   实例: 代码如下:<?PHP $array = array("red"=>"Red","green"=>"red4","Red15"=>"Red",7=>"Level","Width"=>"Red","azzzz1"=>"art","peak"=>158); $array1 = array("red"=>"Red2","gr...

php数组函数序列之array_intersect() 返回两个或多个数组的交集数组

array_intersect() 定义和用法 array_intersect() 函数返回两个或多个数组的交集数组。 结果数组包含了所有在被比较数组中,也同时出现在所有其他参数数组中的值,键名保留不变。 注释:仅有值用于比较。 语法 array_intersect(array1,array2,array3...)参数 描述array1 必需。与其他数组进行比较的第一个数组。array2 必需。与第一个数组进行比较的数组。array3 可选。与第一个数组进行比较的数组。可以有多个。例子 代码如下:<?...

php数组操作之键名比较与差集、交集赋值的方法

本文实例讲述了php数组操作之键名比较与差集、交集赋值的方法。分享给大家供大家参考。具体方法如下: 该实例主要实现对数组的各种常见操作。如对键名比较计算数组的差集,计算差集,给指定数组中插入一个元素,反转数组与交集赋值新的数组等。 具体代码如下:代码如下://定义回调函数 function key_compare_func($key1,$key2) { if($key1==$key2) //如果两参数相等 return 0; //返回0 else if($key1>$key2...

PHP获得数组交集与差集的方法

本文实例讲述了PHP获得数组交集与差集的方法。分享给大家供大家参考。具体分析如下: 一、数组的交集 array_intersect() array_intersect()函数返回一个保留了键的数组,这个数组只由第一个数组中出现的且在其他每个输入数组中都出现的值组成。其形式如下: array array_intersect(array array1,array array2[,arrayN…]) 下面这个例子将返回在$fruit1数组中出现的且在$fruit2和$fruit3中也出现的所有的水果: <?php $fruit1 = arr...

PHP实现bitmap位图排序与求交集的方法

本文实例讲述了PHP实现bitmap位图排序求交集的方法。分享给大家供大家参考,具体如下: 初始化一串全为0的二进制; 现有一串无序的整数数组; 如果整数x在这个整数数组当中,就将二进制串的第x位置为1; 然后顺序读取这个二进制串,并将为1的位转换成整数,顺序存放到新的集合中,就是排好序的了 排序代码: function sort() {// var_dump(PHP_INT_MAX, PHP_INT_SIZE);// int 9223372036854775807// int 8$bitmap = array_fill(0, 50, 0); ...

PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)

本文实例讲述了PHP编程计算两个时间段是否有交集的实现方法。分享给大家供大家参考,具体如下: 优化前的版本: /*** PHP计算两个时间段是否有交集(边界重叠不算)** @param string $beginTime1 开始时间1* @param string $endTime1 结束时间1* @param string $beginTime2 开始时间2* @param string $endTime2 结束时间2* @return bool*/ function is_time_cross($beginTime1 = , $endTime1 = , $beginTime2 = , $endTime2 = ) {$...

PHP实现对数组简单求交集,差集,并集功能示例【图】

本文实例讲述了PHP实现对数组简单求交集,差集,并集功能。分享给大家供大家参考,具体如下: <?php $arr1 = array( 0 => zero, 1 => one, 2 => two, 3 => three ); $arr2 = array( 2 => two, three => three, 4 => four, 5 => five ); //差集【对比返回在 arr1 中但是不在 arr2 及任何其它参数数组中的值。】 $array_diff = array_diff($arr1,$arr2); echo "<pre>"; print_r($array_diff); /* 输出结果 *Array *( * [0] => zero ...

解析PHP编程计算两个时间段是否有交集的实现方法

这篇文章主要介绍了PHP编程计算两个时间段是否有交集的实现方法,结合具体实例形式对比分析了php时间段的转换、比较等相关操作技巧,需要的朋友可以参考下本文实例讲述了PHP编程计算两个时间段是否有交集的实现方法。分享给大家供大家参考,具体如下:优化前的版本:/*** PHP计算两个时间段是否有交集(边界重叠不算)** @param string $beginTime1 开始时间1* @param string $endTime1 结束时间1* @param string $beginTime2 开始时...

PHP-计算数组交集,保留标题顺序?【代码】

这个问题已经在这里有了答案: > PHP sorting array_intersect_key() results by second array 1个我有两个数组:<?php $row = array('useless' => 42,'useful' => 'orange','useful_also' => 'apples','useless_too' => 'banana','useful_too' => 'apples'); $header = array('useful_too', 'useful', 'useful_also');我如何获得以下数组?<?php$result = array('usefu...

php-如何获取多维数组的交集?【代码】

我有一个多维数组的数组.每个数组代表一个搜索结果集.我试图弄清楚如何过滤这组数据以仅包括每个数组中存在的数组. 注意:下面显示的索引分别表示多维数组.每个数组都有一个可嵌套的Id键,可用于比较. 该ID位于: $reference_variable [ ‘数据’] [ ‘ID’] [0] 例如,array(array([0], [19], [21], [148]),array([2], [21], [32], [44], [432], [549]),array([13], [21], [148]) )应该返回:array([21] )和:array(array([0], [12]...