当前位置:首页 > 在线留言 >

php基础知识收集--数组、文件、字符串、文件、会话

编辑:北京飞炫空间展览展示有限公司 时间:2017-09-08 23:12:17阅读次数:2
php基础知识收集--数组、文件、字符串、文件、会话

1、数组的概念是什么?数组根据索引分为哪两种,如何区分?数组的赋值方式有哪两种?

数组是一个可以存储一组或一系列数值的变量(复合型变量) 索引数组(索引值为数字,以0开始)和关联数组(以字符串作为索引值) 数组的赋值方式有哪两种? 数组的声明方式主要有两种。 1.通过array()函数声明数组; 可以通过key=>value的方式分别定义索引和值,也可以不定义数组的索引下标,只给出数组的元素值。 2.直接为数组元素赋值,不需要调用array()函数。例如: $arr[0] = 1; $arr[1] = 2; 特别注意: 数组的下标如果是等价于整数的字符串值(但不能以0开头),则会被当作整数对待。 例如: $array[3] 与 $array['3'] 引用的是相同的一个元素,而 $array['03'] 引用的则就是另外的一个元素了。

2、数组如何遍历?

①for循环 ②foreach循环 ,这是最常用的遍历方式。用法如下:foreach($arr as $key=>$value){} ③list each 和while 配合起来循环 $arr = array('你','若','安','好','便','是','晴','天'); while(list($k,$v)=each($arr)){ echo $k,'~',$v,' '; }

3、list的用法
来看一个例子:

'; //返回10~20 ?>

没错可以给一组变量赋值

再来看另外一个例子:

10,3=>20,4=>30,1=>40); echo $a,'~',$b,'~',$c,' '; //返回notice~40~20 //执行到$a的时候返回给我一个notice:说数组没有0键 ?>

按照一般的想法应该会返回:10~20~40
为什么会返回这个notice~40~20呢?
答:这涉及到list的运行机制,list是这么赋值的
  首先:不要管右边的数组,看List里面的变量,从左到右应该是 $a = arr[0] $b=arr[1] $c=arr[3]
  然后:从右到左开始赋值,赋值的顺序是 $c=arr[3] $b=arr[1] $a=arr[0]
所以$c=20 $b = 40 因为没有arr[0],所以$a给了一个警告

4、foeach数组的时候指针是如何指向的?list()/each()/while()循环数组的时候指针如何指向的呢?

当foreach开始执行的时候,数组内部的指针会自动指向第一个单元。因为foreach所操作的是指定数组的拷贝,而不是该数组本身。 而each()一个数组后,数组指针将停留在数组中的下一个单元或者碰到数组结尾时停留在最后一个单元。如果要再次使用each()遍历数组,必须要使用reset(). reset()将数组的内部指针倒回到第一个单元并返回第一个数组单元的值。

5、如何计算数组长度(或者说计算数组中所有元素的个数)?字符串怎么取长度?

count() -- 计算数组中的元素个数。 可以使用count(数组名)或者count(数组名,1),如果有第二个参数,并且是数字1,则表示递归统计数组元素的个数。 如果第二个参数是数字0,则等同于只有一个参数的count()函数。 sizeof() -- count() 的别名 字符串:strlen()、mb_strlen();

6、数组中相关的常用函数有哪些?

1) count --(sizeof别名)— 计算数组中的单元数目或对象中的属性个数 例如:int count ( mixed $var [, int $mode ] ) $var 通常都是数组类型,任何其它类型都只有一个单元。 $mode 默认值为0. 1为开启递归地对数组计数 2) in_array ( mixed $needle , array $haystack [, bool $strict ] ) — 检查数组中是否存在某个值。 如果 needle 是字符串,则比较是区分大小写的。 如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。 3) array_merge(array $array1 [, array $array2 [, array $... ]] ) 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。 特别注意:如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。 如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引 4) 数组与字符串之间的转换 (1)explode ( string $separator , string $string [, int $limit ] ) 使用一个分隔字符来分隔一个字符串。 (2)implode ( string $glue , array $arr ) 使用一个连接符将数组中的每个单元连接为一个字符串。 join 为 implode 的别名 5) sort(array &$array [, int $sort_flags ]) — 对数组按照值排序,当本函数结束时数组单元将被从最低到最高重新安排。

7、数组合并函数array_merge()和数组加法运算$arr + $arr2 的区别是什么?

array_merge()->使用array_merge(),如果是关联数组合并,如果数组的键名相同,那么后面的值将覆盖前者;如果是数字索引数组合并,则不覆盖,而是 后者附加到前者后面。 "+"->使用数组加法运算,与array_merge()不同,加法运算不管是关联数组还是数字索引数组,都是将相同键名的的值舍弃, 也就是只保留首次出现该键名的元素,后来的具有相同键名的元素都不会被加进来。

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:武汉做网站 https://www.feimao666.com

上一篇:使用Python处理目录(二)-计算某个目录下特定文件类 下一篇:最后一页

相关阅读