栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

PHP学习记录之数组函数

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP学习记录之数组函数

数组

php中的数组是一个有序映射,映射是一种把values关联到keys的类型,数组可以接受任意数量用逗号分隔符的键值对。

数组的介绍



数组的创建

$arr1 = array(); //创建一个空数组
$arr2 = array(1, 2, 3); //创建一个索引数组
$arr3 = array( //创建一个关联数组
  'a' => 'a_value',
  'b' => 'b_value',
  'c' => 'c_value'
);
$arr4 = []; //[]用法和array()一致,同样可以创建空数组、索引数组、关联数组
$arr4[] = 'a'; //利用[]对数组进行扩展,为数组新添元素

键名类型的自动转换

$arr = array(
  1 => 'a',      //1   键名为integer类型,不会自动转换
  'b' => 'b',     //'b'  键名为string类型,不会自动转换
  '8' => 'c',     //8   包含有合法整型值的字符串会自动转换成整型
  3.5 => 'd',     //3   键名为浮点数类型,会舍去小数,转换成integer类型
  true => 'e',    //1   键名为布尔类型,true转成1,false转成0
  null => 'f',    //''  键名为NULL类型,会转成''
  'g'  //9   没有指定键名,默认为已有最大健名的值+1
);
$arr[] = 'h';      //10  新添加一个健值对,没有指定键名,默认为已有最大健名的值+1
print_r($arr); //printf_r()是数组输出专用函数

通过range()和compact()快速创建

//range()快速创建下标连续的索引数组
//
$arr = range(1, 5);
print_r($arr); //Array([0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5)
$arr = range('a', 'b', 'c');
print_r($arr); //Array([0] => a [1] => b [2] => c)
echo chr(90), "n"; //Z
echo ord('z'), "n"; //122
//compact()快速创建关联数组

$username = 'zhao';
$age = '22';
$email = 'wangzhao_hb@126.com';
$arr = compact('username', 'age', 'email'); //通过将已有变量名放在函数中快速生成关联数组
//Array([username] => zhao [age] => 22 [email] => wangzhao_hb@126.com)
print_r($arr);
list($a, $b, $c) = array(1, 2, 3);

echo "a的值为{$a}, b的值为{$b}, c的值为{$c}", "n";  //a的值为1, b的值为2, c的值为3

通过const和define()定义常量数组

const ARR1 = [1, 2, 3]; //const定义常量数组
print_r(ARR1); //Array([0] => 1 [1] => 2 [2] => 3)
define('ARR2', [1, 2, 3]); //define()定义常量数组
print_r(ARR2); //Array([0] => 1 [1] => 2 [2] => 3)
//运用场景:自定义文件上传错误数组信息
define('CUSTOM_UPLOAD_ERRORS', [
  'ext_error' => '文件扩展名不符合规范',
  'maxsize' => '上传文件大小不符合规范'
]);
//遇到文件上传时扩展名不符合规范的时候,可调用报错

echo CUSTOM_UPLOAD_ERRORS['ext_error'], "n";  //文件扩展名不符合规范

数组的使用


//查找:通过键名找到对应的键值
$arr1 = ['a', 'b', 'c', 'd'];
$arr2 = [
  'username' => '王昭',
  'sex' => '男'
];
echo '下标为2的值:', $arr1[2], "n"; //下标为2的值:c
echo '用户名为:',$arr2['username'], "n"; //用户名为:王昭
$arr3 = [ //二位数组的查找
  ['id'=>'1001', 'name'=>'张三'],
  ['id'=>'1002', 'name'=>'李四']
];
echo '下标为0的姓名:', $arr3[0]['name'], "n"; //下标为0的姓名:张三
//添加
$arr = ['a', 'b', 'c'];
$arr[] = 'd'; //添加元素,不指定键名,键名为数字
$arr['username'] = '王昭'; //添加元素,指定键名,键名为字符串
print_r($arr); //Array([0] => a [1] => b [2] => c [3] => d [username] => 王昭)
//修改
$arr = ['a', 'b', 'c', 'username'=>'王昭'];
$arr['username'] = '张三';
echo $arr['username'], "n"; //张三
//删除
unset($arr['username']); //删除键名为'username'的键值对
print_r($arr); //Array([0] => a [1] => b [2] => c)
unset($arr[1]);
print_r($arr); //Array([0] => a [2] => c)
unset($arr); //释放数组
//print_r($arr); //输出错误 Notice: Undefined variable

其他类型转换成数组


$str = 'abc';
$arr = (array)$str;
print_r($arr); //Array([0] => abc)
settype($str, 'array');
print_r($str); //Array([0] => abc)

数组运算符


$arr1 = [1, 2, 3];
$arr2 = ['a', 'b', 'c'];
$arr3 = ['username'=>'张三', 'age'=>12];
$arr4 = [10=>10, 11=>11];
$arrSum1 = $arr1 + $arr2; //如果键名相同,只会展示左边数组的键值对
$arrSum2 = $arr1 + $arr3; //+与数组是索引数组或者是关联数组无关
$arrSum3 = $arr1 + $arr3 + $arr4; //如果后面的数组的键名和前面的数组的键名重复,不会覆盖,会展示前面数组对应的键值
print_r($arrSum1); //Array([0] => 1 [1] => 2 [2] => 3)
print_r($arrSum2); //Array([0] => 1 [1] => 2 [2] => 3 [username] => 张三 [age] => 12)
print_r($arrSum3); //Array([0] => 1 [1] => 2 [2] => 3 [username] => 张三 [age] => 12 [10] => 10 [11] => 11)
$arr5 = ['1'=>1, 'b'=>2, 'c'=>3];
$arr6 = ['b'=>2, '1'=>1, 'c'=>3];
$arr7 = [1=>1, 'b'=>2, 'c'=>3];
var_dump($arr5 == $arr6); //bool(true)
var_dump($arr5 === $arr6); //bool(false)
var_dump($arr5 === $arr7); //bool(true)
var_dump($arr5 != $arr6); //bool(false)
var_dump($arr5 !== $arr6); //bool(true)

总结

以上所述是小编给大家介绍的PHP学习记录之数组函数,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对考高分网网站的支持!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/39764.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号