PHP数组、函数
PHP数组:
(1)索引数组和关联数组:
(1.)索引数组:传统数组,下标从0开始.
(2.)关联数组:类似字典结构,键值可以是一个数字或者字符串,等价于整数的字符串被当做整数对待,因此
$arr[3]和$arr['3']引用的是相同的元素.
(3.)php内部将所有数组都存储为关联数组.
(2)数组元素的访问:
(1.)$array['name’].(引号可以省略,但是为了防止和常量字符串冲突,最好加上)
(2.)$array[0].
(3)在数组中存储数据:
(1.)若果数组不存在,那么向数组中存放值将创建该数组,但是在一个未定义的数组中检索值,不会创建数组.
(2.)使用系统自带方法:$arr = array(),不传递参数就是空数组.
(3.)$array = ['name' => 'jack', age => 19, gender => '男'].
(4.)$days = array(1 => 'Mon', 'Tue', 'Wed', 'Thu', 'Fri').
(4)指定值的范围:
(1.)$numbers = range(2, 30), range(10, 5)即倒着存储数值.
(2.)$letters = range('a', 'z').
(5)获取数组的大小:
(1.)count()
(2.)sizeof(),是count()的别名,没有区别
(6)键和值:
(1.)取出所有key值形成新数组:$keys = array_keys($array);
(2.)取出所有value形成新数组:$values = array_values($array);
(7)检查元素是否存在:
(1.)array_key_exists('name', $array);
(8)在数组中删除或插入元素:
***(1.)array_splice($array, 2, 3, $addedArray).
(9)遍历数组:
(1.)foreach($array as $value)
(2.)foreach($array as $key => $value)
12.php函数:
(1)定义函数:
(1.)function name(parameters){content}
(2.)函数名不区分大小写,为了方便,内部函数全是小写
(2)变量作用域:
(1.)函数内部变量(函数级作用域)及参数不能访问外部函数,并且外部定义的变量(全局作用域)也不能被访
问.
(2.)全局变量:使用global关键字访问或$GLOBALS['a’]访问.
(3.)静态变量:static $a = 0;
(3)函数参数:
(1.)按值传递参数
(2.)按引用传递参数:
function foo(&$num)
{
$num += 200;
}
作业02: 1. 查看文档
(8)在数组中删除或插入元素:
***(1.)array_splice($array, 2, 3, $addedArray).
array_splice() 函数从数组中移除选定的元素,并用新元素取代它。该函数也将返回包含被移除元素的数组。
注意:如果函数没有移除任何元素(length=0),则将从 start 参数的位置插入被替换数组(参见例子 2)。
注释:不保留被替换数组中的键名。
array_splice() 函数与 array_slice() 函数类似,选择数组中的一系列元素,但不返回,而是删除它们并用其它值代替。
如果提供了第四个参数,则之前选中的那些元素将被第四个参数指定的数组取代。
最后生成的数组将会返回。
array_splice(array, start, [length], [array])
参数:
array: 规定数组
start: 删除元素的开始位置
0:第一个元素
正数: 从数组中该值指定的偏移量开始移除。
负数: 从数组末端倒数
length: 可选参数, 数值, 被移除的元素个数, 也是被返回数组的长度
0:数组不会改变
正数:移除该数量的元素。
负数: 移除从start到数值末端倒数length为止中间所有元素
未设置: 移除从start参数设置的位置开始直到数组末端的所有元素
array: 可选参数, 规定带有要插入原始数组中元素的数组
如果只有一个元素, 则可以设置为字符串, 不需要设置为函数
返回值:
返回由被提取元素组成的数组
array_splice($array2, 0);
print_r($array2) ; // Array ( ) 全部删除
echo '<br>';
$array3 = array(12, 45, 32, 26 ,15, 54, 45, 23);
array_splice($array3, 0, 2); // 从下标0开始, 删除两个元素
print_r($array3); //
echo '<br>';
$array4 = array(12, 45, 32, 26 ,15, 54, 45, 23);
array_splice($array4, 0, -2); // 从下标start0开始, 到数组倒数length为止
print_r($array4); // Array ( [0] => 45 [1] => 23 )
echo '<br>';
$array5 = array(12, 45, 32, 26 ,15, 54, 45, 23);
array_splice($array5, 5, 0); // 数组没有改变
print_r($array5); //
echo '<br>';
$array5 = array(12, 45, 32, 26 ,15, 54, 45, 23);
array_splice($array5, -5, 2); // 从倒数第五个元素开, 删除两个
print_r($array5); //
echo '<br>';
$array5 = array(12, 45, 32, 26 ,15, 54, 45, 23);
array_splice($array5, -5, -2); // 从倒数第五个元素,到倒数第二个删除 start 《 length
print_r($array5); //
echo '<br>';
$array5 = array(12, 45, 32, 26 ,15, 54, 45, 23);
$arr = array(11, 14);
array_splice($array5, 5, 0, $arr); // 在下标为五的元素除开始添加数组arr中的元素
print_r($array5); //
echo '<br>';
$array5 = array(12, 45, 32, 26 ,15, 54, 45, 23);
array_splice($array5, 5, 1, $arr); // 在下标为5处开始删除长度为1的元素, 同时插入arr数组中的元素
print_r($array5); //
echo '<br>';
$array5 = array(12, 45, 32, 26 ,15, 54, 45, 23);
array_splice($array5, 5, 0, 'asd'); // 在下标为5处插入字符串
print_r($array5); //
echo '<br>';
print_r($array2) ; // Array ( ) 全部删除
echo '<br>';
$array3 = array(12, 45, 32, 26 ,15, 54, 45, 23);
array_splice($array3, 0, 2); // 从下标0开始, 删除两个元素
print_r($array3); //
echo '<br>';
$array4 = array(12, 45, 32, 26 ,15, 54, 45, 23);
array_splice($array4, 0, -2); // 从下标start0开始, 到数组倒数length为止
print_r($array4); // Array ( [0] => 45 [1] => 23 )
echo '<br>';
$array5 = array(12, 45, 32, 26 ,15, 54, 45, 23);
array_splice($array5, 5, 0); // 数组没有改变
print_r($array5); //
echo '<br>';
$array5 = array(12, 45, 32, 26 ,15, 54, 45, 23);
array_splice($array5, -5, 2); // 从倒数第五个元素开, 删除两个
print_r($array5); //
echo '<br>';
$array5 = array(12, 45, 32, 26 ,15, 54, 45, 23);
array_splice($array5, -5, -2); // 从倒数第五个元素,到倒数第二个删除 start 《 length
print_r($array5); //
echo '<br>';
$array5 = array(12, 45, 32, 26 ,15, 54, 45, 23);
$arr = array(11, 14);
array_splice($array5, 5, 0, $arr); // 在下标为五的元素除开始添加数组arr中的元素
print_r($array5); //
echo '<br>';
$array5 = array(12, 45, 32, 26 ,15, 54, 45, 23);
array_splice($array5, 5, 1, $arr); // 在下标为5处开始删除长度为1的元素, 同时插入arr数组中的元素
print_r($array5); //
echo '<br>';
$array5 = array(12, 45, 32, 26 ,15, 54, 45, 23);
array_splice($array5, 5, 0, 'asd'); // 在下标为5处插入字符串
print_r($array5); //
echo '<br>';
1.sort() 函数对索引数组进行升序排序。
注意: 本函数为数组中的单元赋予新的键名。原有的键名将被删除。
sort(array, [sortingtype])
array: 规定要进行排序的数组
sortingtype:可选参数,
0: 默认 - SORT_REGULAR通常比较项目(不改变类型)
1: - SORT_NUMERIC 每一项当做数值进行比较
2 :- SORT_STRING 每一项当做作为字符串进行比较
3: - SORT_LOCALE_STRING 每一项当做作为字符串进行比较,根据当前区域设置。(可以使用setlocale()改变)
4:- SORT_NATURA L 每一项当做作为字符串来处理, 使用类似 natsort()的自然排序
5:- SORT_FLAG_CASE 可以结合(按位或)与SORT_STRING或SORT_NATURAL 对字符串进行排序,不区分大小写
返回值: 如果成功则返回 TRUE,否则返回 FALSE。
2.rsort() 函数对数值数组进行降序排序。
rsort(array, [sortingtype])
3.asort() 函数对数组按照键值进行升序排序 ,value对应的 key 不改变
asort(array, [sortingtype])
参数同上
4. arsort() 函数对数组按照键值进行降序排序 , value对应的 key 不改变
5. ksort() 函数对数组按照键名进行升序排序 key升序
6. krsort() 函数对数组按照键名进行降序排序 key降序