目录
一: 数组的定义
1.数组可以存入多个不同类型的数据,是一个复合数据类型;数组的英文是array;
2.数组中标签原样输出:
echo '</pre>';
3.eg:
<?php
$minren = array(
'杨幂',
'王珞丹',
'刘亦菲',
'黄圣依',
'范冰冰'
);
$minren[5] = '范爷';
$minren[2] = '亦菲,不要嫁给韩国人好吗?';
echo '<pre>';
var_dump($minren);
?>
效果:
array(6) {
[0]=>
string(6) "杨幂"
[1]=>
string(9) "王珞丹"
[2]=>
string(39) "亦菲,不要嫁给韩国人好吗?"
[3]=>
string(9) "黄圣依"
[4]=>
string(9) "范冰冰"
[5]=>
string(6) "范爷"
}
注意:
1).array(size = 6) 说明里面有6个元素;
2).最新前的0,1,2,3,4,5,代表的是值的读取标识号,我们称之为下标或者键(英文:key);
3).=> 是一个符号标准叫法叫作:键值对应符;因此,以后再看到 [0]=> "杨幂",可以这样来说,下标访问符0对应字符串杨幂;
4). 元素就是键值对的组合
二: 索引数组
1.概念: 索引数组就是下标全为整型的数组;
2.索引数组的下标必须要从0开始吗?
答: 索引数组并不一定要从0开始,可以自定义健值对应符;
3.eg:
<?php
$kele = array(
'只有不断努力才能博得未来',
10 => 'NoAlike',
'PHP中文网' ,
'去PHP中文网学PHP',
19 => '凤姐和芙蓉我都爱' ,
'杨幂我最爱'
);
echo '<pre>';
var_dump($kele);
?>
效果:
array(6) {
[0]=>
string(36) "只有不断努力才能博得未来"
[10]=>
string(7) "NoAlike"
[11]=>
string(12) "PHP中文网"
[12]=>
string(21) "去PHP中文网学PHP"
[19]=>
string(24) "凤姐和芙蓉我都爱"
[20]=>
string(15) "杨幂我最爱"
}
4.索引数组的特点:
1).索引数组若不强制声明他的下标,他的下标是从0开始的;
2).如果我指定过下标,他的下标就为我指定的值。如下标为10和下标为19的,都是我指定过的值;
3).若某个值(如NoAlike),强制指定了下标(下标为10);在它后面加上的值(PHP中文网),不指定下标的话,他们的下标增长规律为最大值+1;
三: 向索引数组中增加元素
1.向索引数组中增加元素用: 数组变量名[]、数组变量名[键值]这两种方式来增加元素;
2.键值的增长规则与之前的规则一样。都是最大值加1的原则。
3.eg:
<?php
$minren = array(
'杨幂',
'王珞丹',
'刘亦菲',
'黄圣依'
);
//如何向这$minren这个数组中增加元素呢
$minren[] = '范冰冰'; //下标为: 4
$minren[100] = '范爷'; //下标为: 100
$minren[] = '李晨'; // //下标为: 101
echo "pre";
var_dump($minren);
?>
四: 向索引数组中删除元素
1.使用unset删除变量的方式来删除数组里面的值;
2.删除了中间的值,并不会让后面的下标向前自动移动。而是原来的值为多少就为多少;
3.删除掉其中的某个值,新加入的值不会替换掉原来的位置,依然遵循最大值加1的原则。
4.eg:
<?php
$minren = array(
'杨幂',
'王珞丹',
'刘亦菲',
'黄圣依',
'范冰冰'
);
unset($minren[1]); //删除王珞丹就是删除这个元素对应的下标
$minren[] = '金星'; //下表: 5
echo '<pre>';
var_dump($minren);
?>
效果:
array(5) {
[0]=>
string(6) "杨幂"
[2]=>
string(9) "刘亦菲"
[3]=>
string(9) "黄圣依"
[4]=>
string(9) "范冰冰"
[5]=>
string(6) "金星"
}
五: 向索引数组中修改值
1.用变量名[键] = 新值;就把数组中的值修改成新值了。
2.eg: 把数组中元素刘亦菲修改成 "亦菲,不要嫁给韩国人好吗?";
<?php
$minren = array(
'杨幂',
'王珞丹',
'刘亦菲',
);
$minren[5] = '范爷';
$minren[2] = '亦菲,不要嫁给韩国人好吗?';
echo '<pre>';
var_dump($minren);
?>
效果:
array(4) {
[0]=>
string(6) "杨幂"
[1]=>
string(9) "王珞丹"
[2]=>
string(39) "亦菲,不要嫁给韩国人好吗?"
[5]=>
string(6) "范爷"
}
六: 索引数组的声明方式
1.array()申明;
eg:
$minren = array('杨幂','王珞丹');
2.直接用之前未声明的变量,用变量名后面接中括号的方式声明数组;
//直接写一个变量后面加上中括号,声明变量
$qi[] = '可口可乐';
$qi[10] ='百事可乐';
echo '<pre>';
var_dump($qi);
效果:
array(2) {
[0]=>
string(12) "可口可乐"
[10]=>
string(12) "百事可乐"
}
3.用[ ]括起来申明;
<?php
$minren = ['杨幂','王珞丹'];
echo '<pre>';
var_dump($minren);
?>
七: 关联数组
1.只要数组里面有一个元素的下标为字符串的数组,就为关联数组。
2.申明一个关联数组,跟索引数组的声明方式完成一样;不同的是,必须要指定字符串下标对应的健值,以键值对作为整体呈现出来;
3.eg:
<?php
//声明一下关联数组
$rela = array(
'帅' => '陈奕迅',
'很帅' => '黄晓明'
);
//再来玩玩简洁声明
$drink = [
'美' => '凤姐',
100,
100 => '孙俪',
'娘娘',
];
echo '<pre>';
var_dump($rela);
echo '<pre>';
var_dump($drink);
?>
效果:
array(2) {
["帅"]=>
string(9) "陈奕迅"
["很帅"]=>
string(9) "黄晓明"
}
array(4) {
["美"]=>
string(6) "凤姐"
[0]=>
int(100)
[100]=>
string(6) "孙俪"
[101]=>
string(6) "娘娘"
}
4.总结:
1).声明关联数组是 键名 => 值;
2).在关联数组可以有索引数组的元素;
3).关联数组中的索引数组的元素后再声明了无下标的元素,依然是最大值+1原则;
4).关联数组的增、删、改和索引数组一样;
5.其他的关联数组声明方式
<?php
$drink['nf'] = '农夫山泉';
$cocacola = '可口可乐';
//当然可以是变量哟
$drink['kl'] = $cocacola;
$data = array(
'kl' => $cocacola,
);
echo '<pre>';
var_dump($drink);
?>
效果:
array(2) {
["nf"]=>
string(12) "农夫山泉"
["kl"]=>
string(12) "可口可乐"
}
八: 数组当中插入数组
1.数组的一些定义:
1).一维数组: 数组里面没有其他数组,只有单纯的一些变量或者值;
2).二维数组: 数组里面插入了单层的一个数组,或者多个数组;
3).三维数组: 在数组(A)里面插入了一个数组(B),在B数组里面又插入了一层级的数组(C),这种我们就称为三维数组;
4).超过三维的,统统都叫多维数组。
注:索引数组和关联数组当中都可以再插入其他数组,让数组变为多维的。
2.eg:二维数组的访问:
<?php
$person = [
'office' => '办公室',
//注意:插入第一个数组哟
'family' => [
'爸爸',
'妈妈',
'yeye' => '爷爷',
'nn' => '奶奶',
],
//注意:又插入了一个平级的数组
'jiaotong' => [
'自行车',
'摩托车',
'汽车',
'飞机',
],
];
//访问“爸爸”这什值
echo $person['family'][0];
//访问“爷爷”这什值
echo $person['family']['yeye'];
//访问“汽车”这什值
echo $person['jiaotong'][2];
?>
先写上变量,中括号写上family这个下标,再写上要访问元素的下标。
3.多维数组:
1).将每个维度的换行、缩进弄整齐,就不容易出错了;
2).数组元素间的分割符为逗号,在数组中插入数组的时候,不要在结尾处写成了分号(;);