php数组数据结构

3.1 PHP数组数据结构

数组的英文是array,可以存入多个不同类型的数据,是一个复合数据类型。

数组案例:

<?php

$shu = array(1 , 1.5 , true ,'天王盖地虎,小鸡炖蘑菇');

echo '<pre>';

var_dump($shu);

echo '</pre>';

?>

在上例中,我们发现我们存入了:整型、浮点、布尔、字符串

注:上例中echo pre这个标签的主要目的是为原样输出,格式展示的更好看,更清晰。

可以用var_dump()打印出来显示看一下效果:

 

索引数组的下标必须要从0开始吗?

答:这个问题其实不然,索引数组并不一定要从0开始。

那如何能够不从0开始呢?

答:需要用到大家在上面学的一小块知识哟。就是键值对应符。我们来动手写。

<?php
$kele = array('只有不断努力才能博得未来',12 => 'NoAlike', 'PHP中文网' , '去PHP中文网学PHP', 19 => '苹果和梨子我都爱' , '橘子我最爱');
echo'<br />';
var_dump($kele).'<br />';
?>

  1. for循环遍历索引数组

  2. <?php
    $shu = array(1, 1.5, true, '天王盖地虎,小鸡炖蘑菇');
    echo $shu[2].'<br />';
    echo $shu[3].'<br />';
    for ($i = 0; $i <= 3; $i++) {
        echo $shu[$i].'<br />';
    }
    ?>

通过上面的例子,我们就把数组进行了循环。因为下标是从0开始的,定义$i=0 。每次循环的时候让$i 1 ,但是必须要小于等于3,因为数组下标的最大值为3

 

  1. 常用操作数组函数

序号

函数信息

说明

实例

1

array_shift()

弹出数组中的第一个元素

 

2

array_unshift()

在数组的开始处压入元素

 

3

array_push()

向数组的末尾处压入元素

 

4

array_pop()

弹出数组末尾的最后一个元素

 

5

current()

读出指针当前位置的值

 

6

key()

读出指针当前位置的键

 

7

next()

指针向下移

 

8

prev()

向上移

 

9

reset()

指针到开始处

 

10

end()

指针到结束处

 

这些函数,也是面试中基础面试中最爱问到的问题。

序号

函数信息

说明

实例

1

array_combine()

生成一个数组,用一个数组的值作为键名,另一个数组值作为值

 

2

range()

创建并返回一个包含指定范围的元素的数组。

 

3

compact()

创建一个由参数所带变量组成的数组

 

4

array_fill()

用给定的值生成数组

 

5

array_chunk()

把一个数组分割为新的数组块

 

6

array_merge()

把两个或多个数组合并为一个数组

 

 

array_slice()

在数组中根据条件取出一段值,并返回

 

 

array_diff()

返回两个数组的差集数组

 

 

array_search()

在数组中搜索给定的值,如果成功则返回相应的键名

 

 

array_splice()

把数组中的一部分去掉并用其它值取代

 

 

array_sum()

计算数组中所有值的和

 

 

in_array()

检查数组中是否存在某个值

 

 

array_key_exists()

检查给定的键名或索引是否存在于数组中

 

 

shuffle()

将数组打乱,保留键值

 

 

count()

计算数组中的单元数目或对象中的属性个数

 

 

array_flip()

返回一个键值反转后的数组

 

 

array_keys()

返回数组所有的键,组成一个数组

 

 

array_values()

返回数组中所有值,组成一个数组

 

 

array_reverse()

返回一个元素顺序相反的数组

 

 

array_count_values()

统计数组中所有的值出现的次数

 

 

array_rand()

从数组中随机抽取一个或多个元素,注意是键名

 

 

array_unique()

删除重复值,返回剩余数组

 

 

sort()

按升序对给定数组的值排序,不保留键名

 

 

rsort()

对数组逆向排序,不保留键名

 

 

asort()

对数组排序,保持索引关系

 

 

arsort()

对数组逆向排序,保持索引关系

 

 

ksort()

按键名对数组排序

 

 

krsort()

将数组按照键逆向排序

 

 

natsort()

用自然顺序算法对数组中的元素排序

 

 

natcasesort()

自然排序,不区分大小写

 

 

array_filter()

去掉数组中的空元素或者预定元素

 

 

extract

将键变为变量名,将值变为变量值

 

功能:弹出数组中的第一个元素

<?php

$mingren = array("邓超", "黄晓明", "宁泽涛", "钟汉良");

$dc = array_shift($mingren);

echo $dc .'<br />';

print_r($mingren);

?>

综合案例:

<?php
$shu = array(213,012,12.3,true,'天王盖地虎,小鸡炖蘑菇');
echo'<br />';
var_dump($shu);
echo'<br />';
$type=gettype($shu);
echo $type.'<br />';
echo'<br />';
echo count($shu);
echo'<br />';
for($i=0;$i <= 3;$i++){
    echo $shu[$i];
}
echo'<br />';
echo array_shift($shu);
echo'<br />';
var_dump($shu);
echo $shu[4].'<br />';
$kele = array('只有不断努力才能博得未来',12 => 'NoAlike', 'PHP中文网' , '去PHP中文网学PHP', 19 => '苹果和梨子我都爱' , '橘子我最爱');
echo'<br />';
var_dump($kele).'<br />';
echo'<br />';
$zz = array("/sb/||/dd/||//");
$string = 'ssssbsssdaaaa';
if(preg_match($zz,$string,$matches)){
    echo 'yes;';
    var_dump($matches);
}else{
    echo 'no';
}
echo'<br />';
$zz = '/wq/';
$string = 'ssssswqaaaaaa';
if(preg_match($zz, $string, $matches)){
    echo '匹配到了,结果为:';
    var_dump($matches);
}else{
    echo '没有匹配到';
}
end($shu);
?>
原文地址:https://www.cnblogs.com/dazhu-secure/p/13726693.html