今天小编给大家分享一下php数组如何将元素值转换成int整数类型的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
转换步骤:1、使用foreach语句通过引用循环的方式遍历数组,语法“foreach ($array as &$value){//循环体语句块;}”;2、在循环体中,使用is_int()函数判断元素“$value”是否为整数类型,如果不是则使用intval()函数将其转为int类型,语法“if(!is_int($value)){$value=intval($value);}”。
本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑
PHP 是弱数据类型的编程语言,所以 PHP 中的数组变量可以存储任意多个、任意类型的数据,并且可以实现其他强数据类型中的堆、栈、队列等数据结构的功能。
简单来说,PHP数组元素的类型没有限制,可以是数字(整数和小数)、字符串、布尔值、数组、Object对象等类型。
那么怎么让php数组中的元素都是int整数类型呢?将不是int整数类型的元素转为int整数类型即可,下面给大家介绍实现步骤。
转换步骤:
步骤1、使用foreach语句通过引用循环的方式遍历数组
foreach ($array as &$value){ //循环体语句块; }
遍历给定的 $array 数组,在每次循环中会将当前数组的值赋给 $value。
一般情况下,使用foreach语句遍历数组时,是对数组的备份进行操作,一般不会影响数组本身。
但采用引用循环(在 $value 之前加上 &,这样foreach语句会以引用赋值而不是拷贝一个值),那么在循环体内对数组进行操作,就会影响数组本身。
步骤2:在循环体中,将元素转为int整数类型
使用is_int()函数判断元素$value是否为整数类型,如果不是则使用intval()函数将其转为int类型
if(!is_int($value)){ $value=intval($value); }
实现代码:
<?php header("content-type:text/html;charset=utf-8"); function f($arr){ var_dump($arr); foreach($arr as &$v){ if(!is_int($v)){ $v=intval($v); } } unset($v); // 最后取消掉引用 echo "转换后"; var_dump($arr); } ?>
调用函数
$a = array(11,"254",12,3.14,3,5); f($a);
$b = array(FALSE,"254",3.14,3,null,TRUE); f($b);
函数说明:
1、is_int()函数
is_int() 函数用于检测变量是否是整数,如果指定的变量是整数 TRUE,否则返回 FALSE。
别名函数():is_integer()、is_long()
注意: 若想测试一个变量是否是数字或数字字符串(如表单输入,它们通常为字符串),必须使用 is_numeric()。
2、intval()函数
intval()直接取整,舍弃小数,保留整数
<?php $str="123.9"; var_dump($str); $int=intval($str); //转换后数值:123 var_dump($int); ?>
扩展知识:将值转成int(整数)类型
1)、使用settype() 函数
settype(var,type)
函数用于设置变量的类型,可以将变量转为指定类型。
只需将参数type设置为“int”或“integer”即可将变量转为int类型。注:该函数修改原变量,返回值为布尔类型(设置成功时返回 TRUE, 失败时返回 FALSE。)。
<?php $str="123.9"; var_dump($str); $int=settype($str,"int"); var_dump($int); //输出bool(true) var_dump($str); //输出int(12) ?>
2)、利用强制类型转换
在要转换的数之前加上用括号括起来的目标类型“(int)”或“(integer)”,将其强制转为整型。
<?php $n=123.9; var_dump($n); $num1=(integer)$n; $num2=(int)$n; var_dump($num1); var_dump($num2); ?>
以上就是“php数组如何将元素值转换成int整数类型”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。