关于php数组的入门操作教程

kano个人技术博客 php教程 699 次浏览 没有评论

要了解php数组,kano个人技术博客建议要先看一下官方手册上对于数组的定义,在图中可以看到php的数组非常灵活,可以将其当做各种结构;而且数组中还可以存储任意类型的数据,在php中,数组和字符串的操作占据工作的很大一部分,所以掌握相关技能是各位php程序员必须要学习的php教程。

php数组定义

 php数组的索引可以称作php数组下标,也可以称为键名,根据php数组提供下标的不同方式,可以将数组分为索引数组关联数组两种(也可以同时使用数字和字符串索引,但一般不这样用,会显得有些混乱),索引数组是有序集合,关联数组是键值对的无序集合。

个人博客php数组教程

在php中创建数组时不需要声明数组的长度。

一、php定义数组

定义数组的方式有两种:

1. 直接为数组元素赋值

(1) 创建索引数组

$a[0] = 'aa';
$a[1] = 'bb';
$a[2] = 'cc';
$a[3] = 'dd';

甚至可以不按数字的顺序给数组赋值

$a[7] = 'ffff';
$a[4] = 'fa';
var_dump($a);
var_dump(count($a));

php返回数组结果:

图片29.png

不按顺序来也不会报错,充分证明了php的灵活性……不过这样确实乱来了点儿,正常情况不会这么用的。

(2) 创建关联数组

$a['aa'] = 'wawa';
$a['bb'] = 'kaka';
$a['cc'] = 'mama';

(3) 不指定索引

$a[] = 'aaa';
$a[] = 'bbb';
$a[] = 'ccc';
$a[] = 'ddd';

php返回数组结果

不指定索引,当数组为空数组或者数组类型中没有数字索引的时候,新元素索引为0;否则为数组中最大的数字索引+1。

2. 使用array()语法结构php数组函数添加数组

(1) 创建索引数组

$arr = array(
    0 => 'aa',
    1 => 'bb',
    2 => 'cc'
);

索引数组可以不指定键名

$arr = array('aa', 'bb', 'cc');

(2) 创建关联数组

$arr = array(
    'key1' => 'aa',
    'key2' => 'bb',
    'key3' => 'cc',
);

(3) 创建数组的简单办法

php5.4以上的版本可以使用更为简便的语法来创建数组

$arr1 = ['aa', 'bb', 'cc'];
$arr2 = [
    'a' => 'aaa',
    'b' => 'bbb'
];

创建php多维数组:

和创建php一维数组基本没什么区别,只不过数组元素也是数组

$personList = array(
    array(1, '张三', 'A公司', '12345678'),
    array(2, '李四', 'B公司', '87654321')
);

二维关联数组

$personList = array(
    'person1' => array(1, '张三', 'A公司', '12345678'),
    'person2' => array(2, '李四', 'B公司', '87654321')
);

二、数组常用操作

1. php数组遍历

在php中遍历数组建议使用foreach

foreach($arr as $key => $value){
    // loop body
}

其中key是键名,value是值

如果是关联数组也可以用普通的for函数来进行数组循环,但php推荐使用foreach进行遍历,性能会更高一些,没有特殊需要就不要用for循环了。

2. 数组合并

可以使用 + 或array_merge函数来合并多个数组,在合并关联数组和索引数组时表现有所区别:

(1) 关联数组

当要合并的数组的键名没有同名时,二者的效果是一样的:

$arr1 = ['a' => 'aa', 'b' => 'bb'];
$arr2 = ['c' => 'cc', 'd' => 'dd'];
$arr3 = ['e' => 'ee', 'f' => 'ff'];
var_dump($arr1 + $arr2 + $arr3);
var_dump(array_merge($arr1, $arr2, $arr3));

php数组

有相同键名的情况下,array_merge会用同名键的最后一个键值;而 + 会使用第一个键值

$arr1 = ['a' => 'aa', 'b' => 'bb'];
$arr2 = ['b' => 'cc', 'd' => 'dd'];
$arr3 = ['b' => 'ee', 'f' => 'ff'];
var_dump($arr1 + $arr2 + $arr3);
var_dump(array_merge($arr1, $arr2, $arr3));

php数组

(2) 索引数组

没有相同键名的情况系仍然是没有区别(但索引数组一般都会从0开始,这种情况几乎见不到),有相同键名时,+ 还是会使用第一个键值;而array_merge不会覆盖原来的值,而是会附加到后面

$a = [55, 77];
$b = [77, 22, 33];
var_dump($a + $b);
var_dump(array_merge($a, $b));

php数组

3. php删除数组元素

unset可以用来删除数组元素

$arr = [
    'a' => 'aaa',
    'b' => 'bbb',
    'c' => 'ccc'
];
unset($arr['b']);
var_dump($arr);

php数组

索引数组用array_splice删除元素效果更好,数字的键名会重新索引(通常这是我们想要的):

$arr1 = ['a', 'b', 'c', 'd'];
unset($arr1[1]);
var_dump($arr1);  // 索引将有空缺

$arr2 = ['a', 'b', 'c', 'd'];
array_splice($arr2, 1, 1);
var_dump($arr2);  // 索引连续

php数组

本篇kano个人博客关于php数组新手入门教程的解析就说到这里了,数组这个话题相当之大,kano这里讲的只是九牛一毛,在实战过程中还有很多很多处理php数组的函数可以拿出来讲,类似php数组的排序、三维数组、php数组与字符串之间的转换、数组分割、php数组去重、数组截取等等知识点都是非常常见常用的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Go