php数组的数学功能相关常用函数

php数组中有一些函数与数学相关的函数,大多都是以array开头然后下划线接一个数学上的英文单词,如下:

1 array_diff()
2 array_diff_assoc()
3 array_intersect()
4 array_intersect_assoc()
5 array_sum()
6 array_product()
7 array_count_values()

首先是数组集合函数,差集array_diff,用于得到目标数组和其他数组的都不同的那些元素

1 $arr = [1, 2, 3, 4, 5, 6, 7, 8];
2 $arr1 = [1, 2, 3, 4, 6];
3 $arr2 = [1, 2, 3, 4, 7];
4 print_r( array_diff( $arr, $arr1, $arr2 ) );
// Array
// (
//     [4] => 5
//     [7] => 8
// )

对于关联数组,和上面的结果一致,因为array_diff函数只比教值是否相同

 1 $arr = [
 2     ‘A‘ => 1, ‘B‘ => 2,
 3     ‘c1‘ => 3, ‘d1‘ => 4, ‘e1‘ => 5,
 4     ‘f‘ => 6, ‘g‘ => 7, ‘h‘ => 8
 5 ];
 6 $arr1 = [
 7     ‘a‘ => 1, ‘b‘ => 2,
 8     ‘c‘ => 3, ‘d‘ => 4, ‘e‘ => 6
 9 ];
10 $arr2 = [
11     ‘a‘ => 1, ‘b‘ => 2,
12     ‘c‘ => 3, ‘d‘ => 4, ‘e‘ => 7
13 ];
14 print_r( array_diff( $arr, $arr1, $arr2 ) );
15 // Array
16 // (
17 //     [e1] => 5
18 //     [h] => 8
19 // )

array_diff_assoc函数从名字上来看,就知道需要比较每个元素的键,区分大小写,

 1 $arr = [
 2     ‘A‘ => 1, ‘B‘ => 2,
 3     ‘c1‘ => 3, ‘d1‘ => 4, ‘e1‘ => 5,
 4     ‘f‘ => 6, ‘g‘ => 7, ‘h‘ => 8
 5 ];
 6 $arr1 = [
 7     ‘a‘ => 1, ‘b‘ => 2,
 8     ‘c‘ => 3, ‘d‘ => 4, ‘e‘ => 6
 9 ];
10 $arr2 = [
11     ‘a‘ => 1, ‘b‘ => 2,
12     ‘c‘ => 3, ‘d‘ => 4, ‘e‘ => 7
13 ];
14 print_r( array_diff_assoc( $arr, $arr1, $arr2 ) );
15 // Array
16 // (
17 //     [A] => 1
18 //     [B] => 2
19 //     [c1] => 3
20 //     [d1] => 4
21 //     [e1] => 5
22 //     [f] => 6
23 //     [g] => 7
24 //     [h] => 8
25 // )

array_intersect()函数,获得目标函数与其他函数都相同的函数,只比教值

 1 $arr = [
 2     ‘A‘ => 1, ‘B‘ => 2,
 3     ‘c1‘ => 3, ‘d1‘ => 4, ‘e1‘ => 5,
 4     ‘f‘ => 6, ‘g‘ => 7, ‘h‘ => 8
 5 ];
 6 $arr1 = [
 7     ‘a‘ => 1, ‘b‘ => 2,
 8     ‘c‘ => 3, ‘d‘ => 4, ‘e‘ => 6
 9 ];
10 $arr2 = [
11     ‘a‘ => 1, ‘b‘ => 2,
12     ‘c‘ => 3, ‘d‘ => 4, ‘e‘ => 7
13 ];
14 print_r( array_intersect( $arr, $arr1, $arr2 ) );
15 // Array
16 // (
17 //     [A] => 1
18 //     [B] => 2
19 //     [c1] => 3
20 //     [d1] => 4
21 // )

array_intersect_assoc()只有键和值都一样才行。

 1 $arr = [
 2     ‘a‘ => 1, ‘b‘ => 2,
 3     ‘c1‘ => 3, ‘d1‘ => 4, ‘e1‘ => 5,
 4     ‘f‘ => 6, ‘e‘ => 7, ‘h‘ => 8
 5 ];
 6 $arr1 = [
 7     ‘a‘ => 1, ‘b‘ => 2,
 8     ‘c‘ => 3, ‘d‘ => 4, ‘e‘ => 6
 9 ];
10 $arr2 = [
11     ‘a‘ => 1, ‘b‘ => 2,
12     ‘c‘ => 3, ‘d‘ => 4, ‘e‘ => 7
13 ];
14 print_r( array_intersect_assoc( $arr, $arr1, $arr2 ) );
15 // Array
16 // (
17 //     [a] => 1
18 //     [b] => 2
19 // )

array_sum()函数计算数组中所有元素值的和,array_product()函数计算数组中所有元素的积,

对于元素值为数字,很符合数学,但如果是字符和数字混杂。

1 $arr = [1, 2, 3, 4, 5, ‘a‘, ‘asss‘];
2 $arr1 = [ ‘1‘, ‘2‘, ‘2as‘, ‘2a2‘ ];
3 echo array_sum($arr), PHP_EOL, array_sum($arr1);
 15
7

这就采用了自动类型转换(字符串转数字)的规则了。对于array_product()这个函数,数学规则的不同,导致结果也是不同。

1 $arr = [1, 2, 3, 4, 5, ‘a‘, ‘asss‘];
2 $arr1 = [ ‘1‘, ‘2‘, ‘2as‘, ‘2a2‘ ];
3 echo array_product($arr), PHP_EOL, array_product($arr1);
4 // 0
5 // 8

array_count_values()函数,统计每一个值的个数

1 $arr = [1, 2, 3, ‘1‘, ‘2‘, 1, 2];
2 print_r( array_count_values($arr) );
3 // Array
4 // (
5 //     [1] => 3
6 //     [2] => 3
7 //     [3] => 1
8 // )

从结果来看似乎也涉及到了自动类型转换规则。注意:向这个函数中传入二维以上数组,会有warning提示,也不会统计二维数组中一维数组的值。

原文地址:https://www.cnblogs.com/zxcv123/p/11809074.html

时间: 2024-10-29 16:00:26

php数组的数学功能相关常用函数的相关文章

PHP基础-常用的数组相关处理函数

一 数组键/值操作有关的函数 1. array_values()//获取数组中所有的值 $lamp=array("os"=>"linux", "webserver"=>"Apache", "db"=>"MySqL", "laguage"=>"php"); $arr=array_values($lamp); list($os,

NumPy常用函数(一)——构造数组函数及代码示例

NumPy是Python的一个科学计算的基本模块.它是一个Python库,提供了一个多维数组对象,各种衍生对象(如屏蔽数组和矩阵),以及用于数组,数学,逻辑,形状操纵,排序,选择,I/O等快速操作的各种例程 离散傅里叶变换,基本线性代数,基本统计运算,随机模拟等等. 本文主要列出构造数组常用的函数或者成为子模块 一.0-1数组 empty(shape [,dtype,order])                      返回给定形状和类型的新数组,而不初始化条目. empty_like(a

php 数组常用函数

PHP数组中常用的函数: 1.//array_values - 返回数组中所有的值 $array = array("name"=>"zhangsan","age"=>"10","sex"=>"man"); $tem= array_values($array); echo "<pre>"; print_r($tem); echo "

PHP常用函数、数组方法

常用函数:rand(); 生成随机数rand(0,50); 范围随机数时间:time(); 取当前时间戳date("Y-m-d H:i:s"); Y:年 m:月份 d:天 H:当前小时 i:当前分钟 s:当前秒数 strlen(字符串); 可以获取字符串长度strcmp(变量,字符串);可以比较两个值得大小strtolower(变量或字符串); 可以改小写strtoupper(变量或字符串): 可以改大写explode("",变量); 拆分字符串substr_rep

PHP 操作数组的常用函数

/*  * 数组的常用函数  * 1.数组的键/值操作函数  * array_values()- 返回数组中所有的值  * array_keys()返回数组中部分的或所有的键名  * in_array() 检查数组中是否存在某个值 如果找到 needle 则返回 TRUE,否则返回 FALSE.  * array_search - 在数组中搜索给定的值,如果成功则返回相应的键名  * array_key_exists - 检查给定的键名或索引是否存在于数组中  *  array_flip - 交

PHP数学常用函数

PHP数学常用函数 函数名 描述 实例 abs() 求绝对值 $abs = abs(-4.2); //4.2 ceil() 进一法取整 echo ceil(9.999); // 10 floor() 舍去法取整 echo floor(9.999); // 9 fmod() 浮点数取余 $x = 5.7;$y = 1.3;$r = fmod($x, $y);// $r equals 0.5, because 4 *  1.3 + 0.5 = 5.7 pow() 返回数的n次方 echo pow(-

php数组常用函数总结

数组的创建 $arr1 = [ "姓名" => "张三", "籍贯" => "上海", "年龄" => 12, "职位" => "php开发工程师", "工作经历" => "阿里巴巴", "月薪" => "20K" ]; $arr2 = array(&q

数组的相关处理函数

1.数组的键.值操作函数 2.统计数组元素的个数与唯一性 3.使用回调函数处理数组的函数 4.数组的排序函数 5.拆分.合并.分解与结合数组 6.数组与数据结构 7.其他有用的数组处理函数 1.数组的键.值操作函数 array_values(); 用途:返回数组中所有的值 格式:array array_values ( array input ) array_keys(); 用途:返回数组中所有的键名 格式:array array_keys(array input[,mixed search_v

php数组常用函数汇总

数组内部制造控制函数 current():取得数组当前位置的值 key():取得数组当前位置的索引值 next():将数组指针向后移一位 prev():将数组指针向前移动一位 end():将数组指针移动到最后一个元素 reset():将数组指针移动到第一个元素 键值操作函数 array_values():获得数组所有元素的键值,并返回一个重新索引的数组. array_keys():获得数组所有元素的键名,并返回一个重新索引的数组,以刚才得到的键名作为新数组的键值 in_array():检查某个值