array_sum(),array_product()的使用
这两个函数在你处理数据的时候,相信会很有用处。
一个是处理数组所有值的和,一个是所有值的乘积。写这个随笔就是强调下,有特殊的情况需要注意,以防以后的工作中,统计的时候出现错误。
举个例子:
$a = array(
'a' => "1a12", // 1
'b' => 1.01, // 1.01
'c' => 1, // 1
'3' => '1.98', // 1.98
'qq' => '0125fck', // 125
'zz' => '-0.09hehe', // -0.09
'bb' => 'a9haha', // 0
true,false, // true是1,false是0
); var_dump(array_sum($a)); // float(130.9)
var_dump(array_product($a));// float(-0)
这个的执行结果是: float(130.9) float(-0)
array_sum()这个函数处理每个值时候,做了类似于intval() 和 floatval() 这样的处理。所以说这个函数并不是只对数组中的数字做处理。
处理情况: 1+ 1.01 +1 +1.98 + 125 + (- 0.09) + 0 + 1 + 0 = 130.9 ;
为什么要写+ 0 呢?再看array_product()这个的结果,就知道了。product以后结果是-0;
因为数组一个元素 'bb' => 'a9haha' , false 转化为数值就是0。所以乘积的结果也是0,当然还有个负号,就是-0。
再举个操作手册里的例子,数组的元素为true的时候,array_sum就是+1,false就是0:
<?php
function only_strings_in_array($arr) {
// 这里map映射以后,返回的是is_string()函数的执行结果,那么字符串就返回true,否则就是false;
// true执行array_sum()就是+ 1
return array_sum(array_map('is_string', $arr)) == count($arr);
}
$arr1 = array('one', 'two', 'three');
$arr2 = array('foo', 'bar', array());
$arr3 = array('foo', array(), 'bar');
$arr4 = array(array(), 'foo', 'bar');
var_dump(
only_strings_in_array($arr1),
only_strings_in_array($arr2),
only_strings_in_array($arr3),
only_strings_in_array($arr4)
);
?>
This will give you the following result:
bool(true)
bool(false)
bool(false)
bool(false)
举这几个例子,就是说明下,元素特殊的情况下的处理情况。
array_sum(),array_product()的使用的更多相关文章
- php数组的数学功能相关常用函数
php数组中有一些函数与数学相关的函数,大多都是以array开头然后下划线接一个数学上的英文单词,如下: array_diff() array_diff_assoc() array_intersect ...
- 014——数组(十四)array_reduce array_slice array_splice array_sum
<?php /** */ //array_reduce()递归的用回调函数递归的对数组元素进行处理,返回处理后的值 /*$arr=array(1,2,3,4,5); function func( ...
- array_sum函数 number array_sum
数组的概念 数组就是一个用来存储一系列变量值的命名区域,每个数组元素有一个相关的索引,也成为关键字,它可以用来访问元素. PHP允许间隔性地使用数字或字符串作为数组的索引. 2.数字索引数组 2.1 ...
- 012——数组(十二) 数组range array_count_values array_pad array_product
<?php /*range () 生成包含指定范围的数组,第三个参数是步长值 */ /*$arr=range(1,10,2); print_r($arr);//输出:Array ( [0] =& ...
- array_sum的用法
众所周知,PHP中函数是功能很强大的,那么今天就说下array_sum的功能吧. 函数功能:返回数组中所有值的和. 举例: <?php $a = array(1,2); $b = array_s ...
- PHP array_product
1.函数的作用:计算数组元素的乘积 2.函数的参数: @params array 3.例子: <?php $input = [false,true]; print_r(array_product ...
- php内置函数分析之array_sum()
PHP_FUNCTION(array_sum) { zval *input, *entry, entry_n; if (zend_parse_parameters(ZEND_NUM_ARGS(), & ...
- php array_sum()函数 语法
php array_sum()函数 语法 作用:返回数组中所有值的和.大理石构件价格 语法:array_sum(arra) 参数: 参数 描述 array 必需.规定数组. 说明:如果所有值都是整数 ...
- PHP array_sum() 函数
实例 返回数组中所有值的和(5+15+25): <?php$a=array(5,15,25);echo array_sum($a);?> 运行实例 » 定义和用法 array_sum() ...
随机推荐
- Java 基础知识总结1
作者QQ:1095737364 QQ群:123300273 欢迎加入! 1.数据类型: 数据类型:1>.基本数据类型:1).数值型: 1}.整型类型(byte 8位 (by ...
- 【代码笔记】iOS-将字符串中特定后的字变成红色
一,效果图. 二,代码. ViewController.m - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup ...
- NodeJS配置TaoBao源
npm install -g cnpm --registry=https://registry.npm.taobao.org
- 利用ListView批量删除item
利用CheckBox选中一个或多个item,最后批量删除它们. 程序运行效果图如下: package com.test.adapter; import java.util.ArrayList; imp ...
- 为notifyIcon.icon属性赋图片
System.Drawing.Bitmap bp; bp = new Bitmap(Application.StartupPath + @"\image\" + MeiYeShuo ...
- NodeJS链接MySql数据库
//1.用npm命令安装mysql模块 npm install mysql //2.js文件中引入mysql模块 const mysqlModule = require('mysql'); //3.创 ...
- 汇编语言debug命令与指令机器码
一.debug命令 二.标志信息 -r用这个指令,得到的信息右下角: NV UP EI PL NZ NA PO NC 这些符号代表的就是标志寄存器里常用标志位的值.这个是符号值对应表: 溢出标志OF( ...
- ORACLE 查看并修改最大连接数
第一步,在cmd命令行,输入sqlplus,打开登录窗口,如下: 第二步,根据提示输入用户名与密码 请输入用户名:sys as sysdba 输入口令:******** 第三步,查看processes ...
- 安全之路 —— 利用SVCHost.exe系统服务实现后门自启动
简介 在Windows系统中有一个系统服务控制器,叫做SVCHost.exe,它可以用来管理系统的多组服务.它与普通的服务控制不同的是它采用dll导出的ServiceMain主函数实现服务运行,详细原 ...
- windows安装Anaconda3
目录 windows安装Anaconda3 环境 安装 windows安装Anaconda3 by 铁乐与猫 环境 windows7 64位 Anaconda3 5.2.0版本 windows64位 ...