php中的数据结构详解

发布于:2022-12-18 ⋅ 阅读:(202) ⋅ 点赞:(0)

作者名:Demo不是emo 

主页面链接:主页传送门
创作初心:对于计算机的学习者来说,初期的学习无疑是最迷茫和难以坚持的,中后期主要是经验和能力的提高,我也刚接触计算机1年,也在不断的探索,在CSDN写博客主要是为了分享自己的学习历程,学习方法,总结的经验等等,希望能帮助到大家
座右铭:不要让时代的悲哀成为你的悲哀
专研方向:网络安全,数据结构

每日emo生活有很多味道,最苦和最甜都是你

 

学习php的第五天,今天学习的是php中的数组和数据结构,话不多说直接开始

目录

一:PHP中的数组和数据结构 

1.数组的定义

2.索引数组 

3.关联数组

4.数组的操作

1.增加 

2.删除 

5.for循环遍历数据

6.foeach函数遍历关联数组

7.list和each函数 

1.list函数 

 2.echo函数


一:PHP中的数组和数据结构 

1.数组的定义

  • 数组可以存入多个不同类型的数据,甚至还可以存数组,这样的数组我们叫多维数组,是一个复合数据类型。

  • 数组的英文是array

最简单的声明

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

经过上面的例子我们发现,这里的数组存放了多个类型的数据,这里还有一个知识点,就是下标(索引) 的概念,数组中的第一个数据下标为0,第二个数据下标为1,依次类推,举个例子:

如果想从上面的数组中取出“true”这个参数,就能通过$shu[2]来代表“true”,即

$shu[2] =true

2.索引数组 

上面讲到了索引数组的下标从0开始,那如果我们不想让他从0开始可以吗?当然是可以的,这里就要用到我们以前学的键值对应符 

<?php

 

$kele = array(5=>'我',20=>'PHP中文网');

 

//打印显示$kele

echo '<pre>';

var_dump($kele);

echo '</pre>';

 

?>

意思就是下标为5的位置和20的位置保存数据(相当于可以指定保存)

注意 :声明数组并不一定需要arary,这样也可以

$minren = [

           '杨幂',

           '王珞丹',

           100 => '刘亦菲',

           '黄圣依',

           '范冰冰'

       ];

3.关联数组

 只要数组里面有一个下标为字符串的数组,就为关联数组。例如下面这种

$rela = array(

       '帅' => '陈奕迅',

       '很帅' => '黄晓明',

       '灰常灰常帅' => '宁泽涛',

       '有男人味的大叔' => '吴秀波',

);

4.数组的操作

1.增加 

$minren = array(

           '杨幂',

           '王珞丹',

           '刘亦菲',

           '黄圣依'

       );

 

 

$minren[] = '范冰冰';
//这里不给出下标位置就是在最后一位数据的后一位添加数据

$minren[100] = '范爷';

//它的下标又为几呢?

2.删除 

$minren = array(

           '杨幂',

           '王珞丹',

           '刘亦菲',

           '黄圣依',

           '范冰冰'

       );

 

//删除时后续的数据并不会自动填补


unset($minren[3]);

5.for循环遍历数据

 遍历二字,从字面解释就是一个接一个全读访问一次,显示出来。

<?php

 

//声明一个数组,值为1到10

$num = array(1,2,3,4,5,6,7,8,9,10);


//我们可以得到数组中元素的总个数,为10

echo count($num);

 

//遍历这个索引数组的话,我们就可以定义一个变量为$i

//$i 的值为0,从0开始

//可以设定一个循环条件为:$i 在下标的(9)最大值之内循环

for($i = 0 ; $i < count($num) ; $i++){

   echo $num[$i].'<br />';

}

 

?>

6.foeach函数遍历关联数组

我们通过上一章的内容学会了for循环遍历连续下标的索引数组。可是,我们发现我们遍历不了关联数组,也遍历不了下标不连续的索引数组。

那我们其实在学循环的时候,有一个循环是专门用来循环数组的。这个循环的基本语法就是foreach基本语法。基本格式如下:

foreach( 要循环的数组变量 as [键变量 =>] 值变量){

//循环的结构体

}

有些同学可能还是不太理解,在这里也给大家准备了一个实例

<?php

$data = [

       'fj' => '凤姐',

       'fr' => '芙蓉',

   ];

foreach($data  as $key => $value){

       echo $key . '-------' . $value . '<br />';

}

// 结果 

/*

fj-------凤姐

fr-------芙蓉

*/

?>

注意:$key 和$value并不是变量名必须得为这两个名字。你命名为其他的也可以,如 $kai => $wen是一样的。 你要清楚键赋值给了哪个变量,值赋值给了另外的哪个变量。 

7.list和each函数 

1.list函数 

它的功能:将索引数组下标为0的对应我变量1,下标1的对应变量2,依此类推,就像下面这样

<?php

 

list($one , $two , $three) = array('张三' ,'李四' ,'王五');

//再次声明:单引号不结释变量,所以输出的是字符串$one

echo '$one----'.$one.'<br />';

echo '$two----'.$two.'<br />';

echo '$three----'.$three.'<br />';

// 结果

/*

$one----张三

$two----李四

$three----王五

*/

?>

 2.echo函数

功能:传入一个数组。它会将其中的一个元素拆为个新数组。每次执行这样操作一个元素。执行一次先后移动一次,同样的方式操作下一个数组元素。执行到最后,返回false。这个比较难以理解,还是通过下面的代码给大家解释一下吧

<?php

 

//定义一个变量叫$kongjie

$kongjie=[

   'gao'=>'穿黑衣服的',

   'shou'=>'腿特别长特别细',

   'mei'=>'好白',

   'pl'=>'五官端正',

   'type'=>'那就是女神',

   '我是吊丝不敢跟女神搭讪'

   ];

//第一次each

$data = each($kongjie);

echo '<pre>';

var_dump($data);

echo '</pre>';

//第一次each 结果:

/*

array(4) {

  [1]=>

  string(15) "穿黑衣服的"

  ["value"]=>

  string(15) "穿黑衣服的"

  [0]=>

  string(3) "gao"

  ["key"]=>

  string(3) "gao"

}

*/

?>
  • 读取了$kongjie中的第一个元素,将第一个元素('gao'=>'穿黑衣服的')分解开了。

  • 分解后第一个元素变成了一个新数组。

  • 在新数组里面,将原值(穿黑衣服的)放了索引下标1里面,同时放到了关联下标value里面。

  • 在新数组里面,将原键(gao),放到了关联下标key里面,放到了索引下标0里面。

  • 可以简单理解为从=号处将其分开,使得一个数据变成两个数据并构成新的数组

  • each的另外一个特性。读一次,向后移动一个元素。这里的元素指定是最开始的元素,而不是分割后的元素,即第一次each分割第一个元素,第二次分割第二个元素,以此类推,直到没有可以操作的元素

php今日份学习结束,(本来早就快写完了手贱按了一下撤销,什么都没了,也没备份,只能重新再写一遍了,我的难过谁能知道啊,哎) ,同志们要加油哇!


网站公告

今日签到

点亮在社区的每一天
去签到