php数组的数学功能相关常用函数
php数组中有一些函数与数学相关的函数,大多都是以array开头然后下划线接一个数学上的英文单词,如下:
array_diff()
array_diff_assoc()
array_intersect()
array_intersect_assoc()
array_sum()
array_product()
array_count_values()
首先是数组集合函数,差集array_diff,用于得到目标数组和其他数组的都不同的那些元素
$arr = [1, 2, 3, 4, 5, 6, 7, 8];
$arr1 = [1, 2, 3, 4, 6];
$arr2 = [1, 2, 3, 4, 7];
print_r( array_diff( $arr, $arr1, $arr2 ) );
// Array
// (
// [4] => 5
// [7] => 8
// )
对于关联数组,和上面的结果一致,因为array_diff函数只比教值是否相同
$arr = [
'A' => 1, 'B' => 2,
'c1' => 3, 'd1' => 4, 'e1' => 5,
'f' => 6, 'g' => 7, 'h' => 8
];
$arr1 = [
'a' => 1, 'b' => 2,
'c' => 3, 'd' => 4, 'e' => 6
];
$arr2 = [
'a' => 1, 'b' => 2,
'c' => 3, 'd' => 4, 'e' => 7
];
print_r( array_diff( $arr, $arr1, $arr2 ) );
// Array
// (
// [e1] => 5
// [h] => 8
// )
array_diff_assoc函数从名字上来看,就知道需要比较每个元素的键,区分大小写,
$arr = [
'A' => 1, 'B' => 2,
'c1' => 3, 'd1' => 4, 'e1' => 5,
'f' => 6, 'g' => 7, 'h' => 8
];
$arr1 = [
'a' => 1, 'b' => 2,
'c' => 3, 'd' => 4, 'e' => 6
];
$arr2 = [
'a' => 1, 'b' => 2,
'c' => 3, 'd' => 4, 'e' => 7
];
print_r( array_diff_assoc( $arr, $arr1, $arr2 ) );
// Array
// (
// [A] => 1
// [B] => 2
// [c1] => 3
// [d1] => 4
// [e1] => 5
// [f] => 6
// [g] => 7
// [h] => 8
// )
array_intersect()函数,获得目标函数与其他函数都相同的函数,只比教值
$arr = [
'A' => 1, 'B' => 2,
'c1' => 3, 'd1' => 4, 'e1' => 5,
'f' => 6, 'g' => 7, 'h' => 8
];
$arr1 = [
'a' => 1, 'b' => 2,
'c' => 3, 'd' => 4, 'e' => 6
];
$arr2 = [
'a' => 1, 'b' => 2,
'c' => 3, 'd' => 4, 'e' => 7
];
print_r( array_intersect( $arr, $arr1, $arr2 ) );
// Array
// (
// [A] => 1
// [B] => 2
// [c1] => 3
// [d1] => 4
// )
array_intersect_assoc()只有键和值都一样才行。
$arr = [
'a' => 1, 'b' => 2,
'c1' => 3, 'd1' => 4, 'e1' => 5,
'f' => 6, 'e' => 7, 'h' => 8
];
$arr1 = [
'a' => 1, 'b' => 2,
'c' => 3, 'd' => 4, 'e' => 6
];
$arr2 = [
'a' => 1, 'b' => 2,
'c' => 3, 'd' => 4, 'e' => 7
];
print_r( array_intersect_assoc( $arr, $arr1, $arr2 ) );
// Array
// (
// [a] => 1
// [b] => 2
// )
array_sum()函数计算数组中所有元素值的和,array_product()函数计算数组中所有元素的积,
对于元素值为数字,很符合数学,但如果是字符和数字混杂。
$arr = [1, 2, 3, 4, 5, 'a', 'asss'];
$arr1 = [ '1', '2', '2as', '2a2' ];
echo array_sum($arr), PHP_EOL, array_sum($arr1);
15
7
这就采用了自动类型转换(字符串转数字)的规则了。对于array_product()这个函数,数学规则的不同,导致结果也是不同。
$arr = [1, 2, 3, 4, 5, 'a', 'asss'];
$arr1 = [ '1', '2', '2as', '2a2' ];
echo array_product($arr), PHP_EOL, array_product($arr1);
// 0
// 8
array_count_values()函数,统计每一个值的个数
$arr = [1, 2, 3, '1', '2', 1, 2];
print_r( array_count_values($arr) );
// Array
// (
// [1] => 3
// [2] => 3
// [3] => 1
// )
从结果来看似乎也涉及到了自动类型转换规则。注意:向这个函数中传入二维以上数组,会有warning提示,也不会统计二维数组中一维数组的值。
php数组的数学功能相关常用函数的更多相关文章
- php数学和时间常用函数有哪些(总结表)(看学习视频效率挺高的)(复习)
php数学和时间常用函数有哪些(总结表)(看学习视频效率挺高的)(复习) 一.总结 一句话总结: 1.数学函数常用的6个:max().min().cell().floor().round().mt_r ...
- js进阶 13-6 jquery动画效果相关常用函数有哪些
js进阶 13-6 jquery动画效果相关常用函数有哪些 一.总结 一句话总结:animate(),stop(),finish(),delat()四个. 1.stop()方法的基本用法是什么(sto ...
- salesforce 零基础学习(六十六)VF页面应善于使用变量和函数(二)常用函数的使用
上一篇介绍VF中常用的变量,此篇主要内容为VF页面可以直接使用的函数,主要包括Date相关函数,Text相关函数,Information相关函数以及logic相关函数,其他相关函数,比如math相关函 ...
- PHP常用的数组相关处理函数
[数组中常用的多种遍历方式] [for 和 foreach 略] [while() . list() .each() 组合循环遍历数组] each()函数 a. 需要一个数组作为参数 b. 返回来的也 ...
- PHP基础-常用的数组相关处理函数
一 数组键/值操作有关的函数 1. array_values()//获取数组中所有的值 $lamp=array("os"=>"linux", " ...
- 【PHP】最详细PHP从入门到精通(三)——PHP中的数组常用函数汇总
PHP从入门到精通 之PHP中的数组常用函数详解 数组作为PHP中最常用的结构之一,PHP强大的数组函数功能,给数组的相关操作带来了极大的便利.今天给大家介绍的PHP中数组函数,是PHP数组中重要的 ...
- numpy学习笔记 - numpy常用函数、向量化操作及基本数学统计方法
# -*- coding: utf-8 -*-"""主要记录代码,相关说明采用注释形势,供日常总结.查阅使用,不定时更新.Created on Fri Aug 24 19 ...
- PHP基础语法: echo,var_dump, 常用函数:随机数:拆分字符串:explode()、rand()、日期时间:time()、字符串转化为时间戳:strtotime()可变参数的函数:PHP里数组长度表示方法:count($attr[指数组]);字符串长度:strlen($a)
PHP语言原理:先把代码显示在源代码中,再通过浏览器解析在网页上 a. 1.substr; //用于输出字符串中,需要的某一部分 <?PHP $a="learn php"; ...
- Delphi 常用函数(数学函数)round、trunc、ceil和floor
源:Delphi 常用函数(数学函数)round.trunc.ceil和floor Delphi 常用函数(数学) Delphi中怎么将实数取整? floor 和 ceil 是 math unit 里 ...
随机推荐
- ppt VBA 实现随机抽题
目录 目标/最终效果 关于VBA VBA简单示例 检查环境 步骤 VBA实现随机抽题 todo challenge 目标/最终效果 目标是制作一个ppt,实现随机抽题,具体描述: 第一页幻灯片中:点击 ...
- vue中select设置默认选中
vue中select设置默认选中 一.总结 一句话总结: 通过v-model来:select上v-model的值为option默认选中的那项的值(value) 二.select设置默认选中实例 < ...
- bootstrap Tab页切换
<ul class="nav nav-tabs" id="otherInfoTab"> <li class="active" ...
- 荔枝派zero从焊接到跑起linux
步骤 焊flash芯片(如果大于16M,需要改烧录工具的源码) 焊引脚,为了串口看数据 焊接flash芯片,需要注意1号脚的位置,flash芯片在开发板背面,1号脚位置是靠近麦克风的那边 以下为编译相 ...
- centos6.9安装python3.6.9独立的virtualenv环境,并且能正确引入ssl
centos6.9安装python3.6.9独立的virtualenv环境,并且能正确引入ssl 1.编译安装python3.6环境# 安装依赖yum -y install zlib-devel bz ...
- Java学习-054-Mybatis IN查询,通过 foreach 获取列表数据
通过如下语句查询商品订单信息: ,,,) 在 Mapper.java 中定义如下接口: List<GoodsOrder> findGoodsOrderByIds(String ids); ...
- C++ Multimap运用实例
C++ Multimap运用实例 #include <map> #include <string> #include <iostream> #include < ...
- python之terminaltables
from terminaltables import AsciiTable, DoubleTable, SingleTable from colorclass import Color, Window ...
- springBoot项目不重新上传jar包,增量升级步骤
1.把源jar包cp到一个空文件夹里,然后把该jar包解压 jar -xf www.itxm.cn-0.0.1-SNAPSHOT.jar 2.进入BOOT-INF文件夹,找到class文件夹,把要升级 ...
- Win10升级后无法删除Windows.old文件夹
问题:win10系统进行升级后(升级到1903版本),无法删除生成的Windows.old文件夹,提示文件夹访问被拒绝. 点击继续后,无法进行正常删除. 解决方法:使用windows自带的磁盘清理进行 ...