这两个函数在你处理数据的时候,相信会很有用处。

一个是处理数组所有值的和,一个是所有值的乘积。写这个随笔就是强调下,有特殊的情况需要注意,以防以后的工作中,统计的时候出现错误。

举个例子:

$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()的使用的更多相关文章

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

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

  2. 014——数组(十四)array_reduce array_slice array_splice array_sum

    <?php /** */ //array_reduce()递归的用回调函数递归的对数组元素进行处理,返回处理后的值 /*$arr=array(1,2,3,4,5); function func( ...

  3. array_sum函数 number array_sum

    数组的概念 数组就是一个用来存储一系列变量值的命名区域,每个数组元素有一个相关的索引,也成为关键字,它可以用来访问元素. PHP允许间隔性地使用数字或字符串作为数组的索引. 2.数字索引数组 2.1 ...

  4. 012——数组(十二) 数组range array_count_values array_pad array_product

    <?php /*range () 生成包含指定范围的数组,第三个参数是步长值 */ /*$arr=range(1,10,2); print_r($arr);//输出:Array ( [0] =& ...

  5. array_sum的用法

    众所周知,PHP中函数是功能很强大的,那么今天就说下array_sum的功能吧. 函数功能:返回数组中所有值的和. 举例: <?php $a = array(1,2); $b = array_s ...

  6. PHP array_product

    1.函数的作用:计算数组元素的乘积 2.函数的参数: @params array 3.例子: <?php $input = [false,true]; print_r(array_product ...

  7. php内置函数分析之array_sum()

    PHP_FUNCTION(array_sum) { zval *input, *entry, entry_n; if (zend_parse_parameters(ZEND_NUM_ARGS(), & ...

  8. php array_sum()函数 语法

    php array_sum()函数 语法 作用:返回数组中所有值的和.大理石构件价格 语法:array_sum(arra) 参数: 参数 描述 array  必需.规定数组. 说明:如果所有值都是整数 ...

  9. PHP array_sum() 函数

    实例 返回数组中所有值的和(5+15+25): <?php$a=array(5,15,25);echo array_sum($a);?> 运行实例 » 定义和用法 array_sum() ...

随机推荐

  1. v-charts使用心得

    前端er经常都会遇到使用echarts的时候,特别是弄后台管理的报表等地方,而v-charts是echarts的vue版本(饿了么写的),基本上能应付普通的图表.传送门 隐藏提示框与图例 v-char ...

  2. JDK8下maven使用maven-javadoc-plugin插件报错

    由于JDK8的doc生成机制比之前的要严谨许多,导致项目用maven打包的时候出错 解决办法: 添加-Xdoclint:none配置 完整配置如下:   <plugin> <grou ...

  3. 如何选型商业智能和分析平台,Gartner给了这些建议!

    文 | 水手 在2017年1月20日Gartner发布的<China Summary Translation: 'Survey Analysis: Customers Rate Their BI ...

  4. 大数据【五】Hive(部署;表操作;分区)

    一 概述 就像我们所了解的sql一样,Hive也是一种数据仓库,不同的是hive是在hadoop大数据生态圈中所用.这篇博客我主要介绍Hive的简单表运用. Hive是Hadoop 大数据生态圈中的数 ...

  5. smarty详细使用教程(韩顺平smarty模板技术笔记)

    MVC是一种开发模式,强调数据的输入.处理.显示是强制分离的 Smarty使用教程1.如何配置我们的smarty解压后把libs文件夹放在网站第一级目录下,然后创建两个文件夹templates 存放模 ...

  6. Appium环境搭建python篇(mac系统)

    1.安装Appium 通过终端安装: 安装nodejs,下载地址:https://nodejs.org/download/,安装完成后打开终端输入node -v,检查是否安装成功 安装npm,打开终端 ...

  7. 转:Web 开发中很实用的10个效果【附源码下载】

    原文地址:http://www.cnblogs.com/lhb25/p/10-useful-web-effect.html 在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多 ...

  8. linux 静态地址配置选项

    最近使用静态地址配置linux, 配置的时候突然不知道配置选项具体内容了,这里面记录一下配置:适用于 ipv4 网络 [root@dhcp-- ~]# cat /etc/sysconfig/netwo ...

  9. 解决windows下vim中文乱码

    解决windows下vim中文乱码 windows安装了vim8,也就是gvim后,打开带有中文的文档,显示中文是乱码. 毕竟有许多文档我是用utf-8编码的,所以解决的办法是设置一下编码为utf-8 ...

  10. Linux运维之系统性能---vmstat工具分析内存的瓶颈

    为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page ...