PHP--学习笔记---02php基础-函数与数组

1.创建类及类对象
<?php 
class Dog{}

class Cat{}
$cat1=new Cat;
var_dump($cat1 instanceof Cat);
?>

结果:
bool(true)

2.导入自定义函数文件

1、创建函数文件func.php

<?php

function printme($number){
	for ($i=0; $i <$number ; $i++) { 
	echo "string".$i;
	echo "<br/>";
		if ($i%2==0) {
			
			continue ;
		}
		echo "<hr/>";

	}
}
?>

2、在主文件中导入该php文件

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>

<body>
<?php 
require "func.php";
printme(5);

?>
<font color="red">zhangsan</font>
<hr>
</body>
</html>

结果:
string0
string1
string2
string3
string4
zhangsan

3.php文件相互调用
<?php 
require "func.php";
require $filepath;
require("func.php");
printme(5);

?>
4.require和include的区别

require出错后悔中断执行
include出错后不中断,会继续执行

5.定义常量

方法一:define

<?php 
define("SAYHIGH","good morning");
echo SAYHIGH;

?>

方法二:const关键字并赋值

<?php 
const SAYHIGH="good afternoon";
echo SAYHIGH;

?>
5.定义数组并遍历

方式一:

$myarray [0]=1;
$myarray [1]=null;
$myarray [2]=3.5;
$myarray [3]=4;
$myarray [4]="hello";

for ($i=0; $i <count($myarray); $i++) { 
	echo $myarray[$i]."<br/>";
}

结果:
1

3.5
4
hello

方式二:

<?php 
$myarray=array(1,"hello",3.2,90);

for ($i=0; $i <count($myarray); $i++) { 
	echo $myarray[$i]."<br/>";
}
?>

结果:
1
hello
3.2
90

方式三:自己指定数组下标

<?php 
$myarray=array("name" => "zhangsan", "age" => 12, "address" => "beijing");
foreach ($myarray as $value) {
	echo $value."<br/>";
}
echo "*****<br/>";
foreach ($myarray as $key=> $one) {
	echo $key."  ".$one."<br/>";
}
?>

结果:
zhangsan
12
beijing


name zhangsan
age 12
address beijing

6.数组元素下标替换

如果创建数组的时候给定了某个元素的key值,后续的元素下标一次增大

<?php 
$myarray=array(34,5 => "zhangsan",  12, "beijing");
echo $myarray[0]."<br/>";
echo $myarray[5]."<br/>";
echo $myarray[6]."<br/>";
echo $myarray[7]."<br/>";

?>

结果:
34
zhangsan
12
beijing

7.直接打印数组值print_r和var_dump
<?php 
$myarray=array(34,5 => "zhangsan",  12, "beijing");
print_r($myarray);
echo "<br/>";
var_dump($myarray);
echo is_array($myarray);
?>

结果:
Array ( [0] => 34 [5] => zhangsan [6] => 12 [7] => beijing )
array(4) { [0]=> int(34) [5]=> string(8) “zhangsan” [6]=> int(12) [7]=> string(7) “beijing” }
1

8.拆分字符串
<?php 
$huan="<br/>";
$myString="张三 李四 王五 赵六";
echo $myString;
$newArray=explode(" ", $myString);
echo $huan;
foreach ($newArray as $value) {
	echo $value.$huan;
}
echo $huan;
print_r($newArray);
?>

结果:
张三 李四 王五 赵六
张三
李四
王五
赵六
Array ( [0] => 张三 [1] => 李四 [2] => 王五 [3] => 赵六 )

另一种分隔符

<?php 
$huan="<br/>";
$myString="张三--李四--王五--赵六";
echo $myString;
$newArray=explode("--", $myString);//第一个参数是分隔符
echo $huan;
foreach ($newArray as $value) {
	echo $value.$huan;
}
echo $huan;
print_r($newArray);
?>

结果:
张三–李四–王五–赵六
张三
李四
王五
赵六

Array ( [0] => 张三 [1] => 李四 [2] => 王五 [3] => 赵六 )

9.使用unset()删除数组的键值

unset()可以销毁数组某个元素,也可以销毁变量

<?php 
$huan="<br/>";
$myArray=array(1,3,5,7,9);
print_r($myArray);
echo $huan;
unset($myArray[3]);
print_r($myArray);
?>

结果:
Array ( [0] => 1 [1] => 3 [2] => 5 [3] => 7 [4] => 9 )
Array ( [0] => 1 [1] => 3 [2] => 5 [4] => 9 )

10.定义多维数组
<?php 
$huan="<br/>";
$myArray=array(array(1,2,3),array(4,5,6),array(7,8,9));

for ($i=0; $i <count($myArray) ; $i++) { 
	for ($j=0; $j <count($myArray[$i]) ; $j++) { 
		echo $myArray[$i][$j]."  ";
	}
	echo $huan;
}


?>

结果:
1 2 3
4 5 6
7 8 9

11.创建一个表格绘制函数
<?php 
$huan="<br/>";
$dataArray=array(array("chinese","advertisement","administrator"),array("law","finantial","electic"),array("news","communication","math"));
function drawTable($dataArray){
	echo "<table border=1>";
	for ($i=0; $i <count($dataArray) ; $i++) { 
		echo "<tr>";
			for ($j=0; $j <count($dataArray[$i]) ; $j++) { 
				echo "<td>".$dataArray[$i][$j]."</td>";	
			}
		echo "</tr>";
	}
	echo "</table>";
}
drawTable($dataArray);
?>

结果:
在这里插入图片描述

第二个例子

<?php 
$huan="<br/>";

//创建一个二维数组
function createArray($row,$col){
	$dataArray=null;
	for ($i=0; $i <$row ; $i++) { 
		for ($j=0; $j <$col ; $j++) { 
			$dataArray[$i][$j]=$i.$j;

		}
	}
	return $dataArray;
}
//绘制一个二维数组填充的表格
function drawTable($dataArray){
	echo "<table border=1>";
	for ($i=0; $i <count($dataArray) ; $i++) { 
		echo "<tr>";
			for ($j=0; $j <count($dataArray[$i]) ; $j++) { 
				echo "<td>".$dataArray[$i][$j]."</td>";	
			}
		echo "</tr>";
	}
	echo "</table>";
}

drawTable(createArray(4,6));

?>

在这里插入图片描述

12.静态变量

我理解实际上达到了全局变量的效果,常驻内存

<?php 
$huan="<br/>";

function mystatic(){
	static $mysum=0;
	$mysum++;
	echo $mysum."<br/>";
	
}


mystatic();
mystatic();
mystatic();
mystatic();
?>

结果:
1
2
3
4

13.地址引用

第一个例子

<?php 
$huan="<br/>";
$myvar="hello";
$urvar=&$myvar;
$urvar="world";
echo $myvar.$huan;
echo $urvar.$huan;
?>

结果:

world
world

第二个例子

<?php 
function test(&$temp){
	$temp=300;
}

$value=100;
test($value);
echo $value;
?>

结果:
300

**ps:**如果在函数的形参中有使用&修饰的参数,在调用该函数时就必须传入一个变量给这个参数,而不能传递一个值。

14.带默认参数的函数
<?php 
function showinfo($name="张三",$age=15,$address="北京"){
	echo "我的名字叫{$name},我现在{$age}岁了,我居住在{$address}<br/>";
}
showinfo("王五");
showinfo("赵六",34);
showinfo("洪七",89,"天南海北");
?>

结果:
我的名字叫王五,我现在15岁了,我居住在北京
我的名字叫赵六,我现在34岁了,我居住在北京
我的名字叫洪七,我现在89岁了,我居住在天南海北

15.可变参数函数

第一个例子

<?php 
function kebian(){
	$dataArray=func_get_args();//获得可变个数的参数组成的数组
	for ($i=0; $i <count($dataArray) ; $i++) { 
		echo "第".$i."个参数为:".$dataArray[$i]."<br/>";
	}
}

kebian("zhangsan",34,"beijing");
?>

结果是:
第0个参数为:zhangsan
第1个参数为:34
第2个参数为:beijing

第二个例子

<?php 
function kebian(){
	
	for ($i=0; $i <func_num_args() ; $i++) { //获得可变个数的参数组成的数组的参数数目
		echo "第".$i."个参数为:".func_get_args() [$i]."<br/>";
	}
}

kebian("zhangsan",34,"beijing");
?>

结果:
第0个参数为:zhangsan
第1个参数为:34
第2个参数为:beijing

16.回调函数

格式:mixed funName(callback arg)
在参数列表中使用伪类型callback描述

所谓的回调函数,就是指调用函数时,并不是一个传递标准的变量作为参数,而是将一个函数作为参数传递到调用的函数中。实际上就是将一个用户定义的执行过程传递到函数中使用,大大增强了用户对函数功能的扩展

17.回调函数–变量函数

也叫可变函数,如果一个变量名后有圆括号,php将寻找与变量的值同名的函数,并且将尝试执行她。如声明一个函数test(),将函数名称字符串test付给变量 $ demo(),则为调用对应$demo 变量值test函数。这样可以将不同的函数名称赋值给同一个变量,再通过变量去调用这个函数。类似于面向对象中多台特性的应用(重写)。

<?php 
function longfun($a,$b){
	return $a+$b;
}
function squrefun($a,$b){
	return $a*$b;
}
function cubefun($a,$b,$c){
	return $a*$b*$c;
}

$myDemo="cubefun";//带双引号的赋值,实际并不是赋值一个字符串
//$myDemo="squrefun";//传哪个值就调用哪个函数
//$myDemo="cubefun";//类似于重写
echo $myDemo(6,5,3)."<br>";//接收到那个函数名的值,就调用哪个函数
?>

结果:
90

18.回调函数–使用变量函数声明和应用回调函数

在定义回调函数时,函数的声明结构没有变化,只要声明的参数是一个普通变量即可。但在函数的内部,应用这个参数变量时,如果加上圆括号就可以调用到和这个参数值同名的函数了,所以作为其传递的参数一定要是另一个函数名称字符串才行。
使用回调函数的目的是可以将一段自定义的功能传到函数内部使用。

<?php 
/*
声明回调函数filter,在0-10的整数中通过自定义条件过滤掉不要的数字
需要传递一个函数名称字符串作为参数
 */
function filter($fun){
	for ($i=0; $i <=10 ; $i++) { 
		//将参数变量$fun加上一个圆括号$fun(),则为调用变量$fun值同名的函数
		if ($fun($i)) {
			echo $i."<br/>";
		}
	}
}
/*
声明一个函数one
 */
function one($num){
	return $num%3==0;
}


/*
声明一个函数two
 */
function two($num){
	return $num%2==0;
}

filter("one");//参数是与函数同名的字符串,实际是调用了one函数
echo "*************<br>";
filter("two");//参数是与函数同名的字符串,实际是调用了two函数
?>

结果:
0
3
6
9


0
2
4
6
8
10

19.回调函数–借助call_user_func_array()函数自定义回调函数

call_user_func_array()是php的内置函数,格式如下
mixed call_user_func_array(callback function, array param_arr)
该函数有两个参数
第一个参数因为使用伪类型callback,所以这个参数需要一个字符串,表示要调用的函数名
第二个参数是一个数组类型参数,表示参数列表,按照顺序依次传递给要调用的函数

<?php 
/*
声明回调函数fun,输出两个字符串,目的是作为call_usr_func_array()回调函数的参数
需要传递一个函数名称字符串作为参数
 */
function fun($msg1,$msg2){
	echo "smg1:".$msg1."<br/>";
	echo "smg2:".$msg2;
}
/*
通过系统函数call_user_func_array()调用fun()
第一个参数为函数fun()的名称字符串
第二个参数则是一个数组,每个元素值会按顺序传递给调用的fun()函数参数列表
 */
call_user_func_array("fun", array("北京市","海淀区"));

结果是:
smg1:北京市
smg2:海淀区

用call_user_func_array()改造第18例

<?php
function filter($fun){
	for ($i=0; $i <=10 ; $i++) { 
		//将参数变量$fun加上一个圆括号$fun(),则为调用变量$fun值同名的函数
		if(call_user_func_array($fun, array($i))){//第一个参数是函数名而不是字符串
			echo $i."<br>";
		}

	}
} 

function one($num){
	return $num%3==0;
}

filter("one");//在这里才使用字符串调用函数

?>

结果:
0
3
6
9

20.类静态函数和对象的回调,也是使用call_user_func_array()函数

使用时,其两个参数为
第一个参数:数组类型的参数(之前是函数名称字符串)
对于静态方法回调:其中数组中第一个元素为类名称,第二个元素为静态方法名称字符串
对于对象方法回调:其中数组中第一个元素为对象,第二个元素对象方法名称字符串
第二个参数:静态方法或对象方法的参数列表数组

<?php
class Demo{
	static function fun($msg1,$msg2){
		echo "msg1=".$msg1."  msg2=".$msg2;
	}
}

class Test{
	function fun($msg1,$msg2){
		echo "msg1=".$msg1."  msg2=".$msg2;
	}
}

/*
通过系统函数call_user_func_array()调用Demo类中的静态成员方法fun()
回调类中的成员方法:第一个参数必须使用数组,并且这个数组需要指定两个元素
第一个参数的第一个元素为类名称字符串,第二个元素则是该类中的静态方法名称字符串。
第二个参数是一个数组,这个数组中的每个元素值会按顺序传递给调用Demo类中的fun()方法参数列表
 */
call_user_func_array(array("Demo","fun"), array("北京市","海淀区"));
echo "<br/>";

/**
 * 通过系统函数call_user_func_array()调用Demo类中实例对象的成员方法fun()
 * 调类中的成员方法:第一个参数必须使用数组,并且这个数组需要指定两个元素
	第一个参数的第一个元素为对象引用,可以使用现成的对象,也可以new一个对象,第二个元素则是该类中实例对象成员方法名称字符串。
	第二个参数是一个数组,这个数组中的每个元素值会按顺序传递给调用对象实例中的fun()方法参数列表
 */
call_user_func_array(array(new Test(),"fun"),array("深圳市","南山区"));
?>

结果是:
msg1=北京市 msg2=海淀区
msg1=深圳市 msg2=南山区


回调函数的说明格式总结如下

  • callback(“回调函数名称字符串”)
  • callback(array(“类名称字符串”,“类中静态方法名称字符串”)
  • callback(array(对象引用,“类中静态方法名称字符串”)
21.递归函数
<?php
function test($n){
	echo $n."&nbsp;&nbsp;";
	if ($n>0) {
		test($n-1);
	}else{
		echo "****";
	}
	echo $n."&nbsp;&nbsp;";

}

test(10);

结果:
10 9 8 7 6 5 4 3 2 1 0 ****0 1 2 3 4 5 6 7 8 9 10
这里一定要有一个结束递归的一个判断条件才可以

22.数组两种定义方式
  • 直接为数组元素赋值
  • 使用array()函数声明数组
<?php
//方法一
$myarray[0]="beijing";
$myarray[1]="shanghai";
$myarray[2]="shenzhen";
print_r($myarray);
echo "<br/>*******<br/>";
//方法二
$myarray2=array("jiangxi","hunan","guangdong");
print_r($myarray2);

?>

结果:
Array ( [0] => beijing [1] => shanghai [2] => shenzhen )


Array ( [0] => jiangxi [1] => hunan [2] => guangdong )

23.混合下标指定元素并使用forecach遍历
<?php
$myarray2=array("home"=>"jiangxi",5=>"hunan","guangdong");
foreach ($myarray2 as $key => $value) {
	echo $key."=>".$value."<br/>";
}
?>

结果
home=>jiangxi
5=>hunan
6=>guangdong
注意第三个元素下标为6,因为定义时第二个元素下标直接指定为5,

24.多维度数组声明及其遍历

实际为一维度数组
见本篇笔记之前的内容

25.联合使用list(),each(),while循环遍历数组

each函数(已过时,不推荐)
each函数遍历第一个元素后会将指针后移一位,直到移到最后一位,下标越界后会返回false

<?php

$myarray2=array("home"=>"jiangxi",5=>"hunan","guangdong");
$key=each($myarray2);//执行each后,指针后移一位
print_r($key);
echo "<br/>****<br/>";
$key=each($myarray2);
print_r($key);
echo "<br/>****<br/>";
$key=each($myarray2);
print_r($key);
echo "<br/>****<br/>";
$key=each($myarray2);
var_dump($key);

?>

结果:


Array ( [1] => hunan [value] => hunan [0] => 5 [key] => 5 )


Array ( [1] => guangdong [value] => guangdong [0] => 6 [key] => 6 )


bool(false)

26.使用数组的内部指针控制函数遍历数组

通过移动或改变指针的位置,可以访问数组中的任意元素。通过以下几个内建函数可以利用
current():取得目前指针位置的内容资料
key():读取目前指针所指向资料的索引值
next():将数组中的内容指针移动到下一单元
prev():将数组的内部指针到会一位
end():将数组的内部指针指向最后一个元素
reset():将目前指针无条件移到第一个索引位置

<?php

$myarray2=array("home"=>"jiangxi",5=>"hunan","guangdong");
echo "第一个元素:".key($myarray2)."=>".current($myarray2)."<br/>";
next($myarray2);
next($myarray2);
echo "第三个元素:".key($myarray2)."=>".current($myarray2)."<br/>";
prev($myarray2);
echo "第二个元素:".key($myarray2)."=>".current($myarray2)."<br/>";
reset($myarray2);
echo "第一个元素:".key($myarray2)."=>".current($myarray2)."<br/>";
?>

结果是:
第一个元素:home=>jiangxi
第三个元素:6=>guangdong
第二个元素:5=>hunan
第一个元素:home=>jiangxi

27.预定义数组–全局

无需声明,在全局范围内生效,不用使用glogbal关键字访问

在这里插入图片描述

28.预定义数组–服务器变量 $_SERVER,环境变量 $_ENV,URL GET变量 $_GET,HTTP POST变量: $_POST,request变量: $_REQUEST,HTTP文件上传变量: $_FILES,HTTP Cookies: $_COOKIE,Session变量: $_SESSION,Global变量: $GLOBALS,
  • 服务器变量 $_SERVER:
    是一个包含注入头信息,路径和脚本位置的数组。
  • 环境变量 $_ENV
    php解析器的变量数组
  • URL GET变量 $_GET:
    通过get方式提交来的一组变量的键值对数组
  • HTTP POST变量: $_POST:
    通过post方式提交来的一组变量的键值对数组
  • request变量: $_REQUEST
    包含 $_GET, $_POST, $_COOKIE中的全部内容
  • HTTP文件上传变量: $_FILES
  • HTTP Cookies: $_COOKIE
    cookie变量数组
  • Session变量: $_SESSION:
    会话信息变量数组
  • Global变量: $GLOBALS:
    所有已定义的全局变量组成的数组
29.数组的相关处理函数—数组键/值操作函数
  • array_values()

传入数组,从新安排数组下标

<?php

$myarray2=array("home"=>"jiangxi",5=>"hunan","guangdong");
print_r($myarray2);
$myarray=array_values($myarray2);
echo "<br/>**<br/>";
print_r($myarray);
?>

结果:
Array ( [home] => jiangxi [5] => hunan [6] => guangdong )
**
Array ( [0] => jiangxi [1] => hunan [2] => guangdong )

  • array_keys()
    返回数组键名
<?php
   
   $myarray2=array("home"=>"jiangxi",5=>"hunan","guangdong");
   print_r($myarray2); $myarray=array_keys($myarray2); echo
   "<br/>**<br/>"; print_r($myarray); ?>

结果是:
Array ( [home] => jiangxi [5] => hunan [6] => guangdong )
**
Array ( [0] => home [1] => 5 [2] => 6 )

  • in_array()
    某个值是否在数组中,连个参数,第一个参数是值,第二个参数是数组
<?php

$myarray2=array("home"=>"jiangxi",5=>"hunan","guangdong");
echo in_array("hunan", $myarray2)."<br/>";
?>

结果:
1

  • array_flip()
    反转数组键和值
<?php

$myarray2=array("home"=>"jiangxi",5=>"hunan","guangdong");
print_r($myarray2);
$myarray=array_flip($myarray2);
echo "<br/>**<br/>";
print_r($myarray);
?>

结果:
Array ( [home] => jiangxi [5] => hunan [6] => guangdong )
**
Array ( [jiangxi] => home [hunan] => 5 [guangdong] => 6 )

  • array_reverse()
    反转数组顺序
<?php

$myarray2=array("home"=>"jiangxi",5=>"hunan","guangdong");
print_r($myarray2);
$myarray=array_reverse($myarray2);
echo "<br/>**<br/>";
print_r($myarray);
?>

结果
Array ( [home] => jiangxi [5] => hunan [6] => guangdong )
**
Array ( [0] => guangdong [1] => hunan [home] => jiangxi )

30.统计数组元素的个数和唯一性
  • count(
  • array_count_values()
    统计各个值出现的次数
<?php

$myarray2=array("home"=>"jiangxi",5=>"hunan","guangdong","hunan");
print_r($myarray2);
$myarray=array_count_values($myarray2);
echo "<br/>**<br/>";
print_r($myarray);
?>

结果:
Array ( [home] => jiangxi [5] => hunan [6] => guangdong [7] => hunan )
**
Array ( [jiangxi] => 1 [hunan] => 2 [guangdong] => 1 )
ps,这里湖南出现了两次

  • array_unique()
    删除数组重复值,返回没有重复值得新数组
<?php

$myarray2=array("home"=>"jiangxi",5=>"hunan","guangdong","hunan");
print_r($myarray2);
$myarray=array_unique($myarray2);
echo "<br/>**<br/>";
print_r($myarray);
?>

结果:
Array ( [home] => jiangxi [5] => hunan [6] => guangdong [7] => hunan )
**
Array ( [home] => jiangxi [5] => hunan [6] => guangdong )

31.使用回调函数处理数组的函数
  • array_filter()
  • array_work()
  • array_map()
    太繁杂,略了,感觉用处不大
32.数组的排序函数

常见排序函数
在这里插入图片描述

33.数组的排序函数—简单的数组排序函数
  • sort(),rsort()
    两个参数,后一个可选,是排序规则
    SORT_REGULAR:默认
    SORT_NUMERIC:数字
    SORT_STRING:字符串
    SORT_LOCALE_STRING:根据当前的locale设置来吧元素当作字符串比较
    rsort()是从大大小是sort()的反序
34.数组的排序函数—根据键名对数组排序ksort(),krsort()
35.数组的排序函数—根据键值对数组排序asort(),arsort()
<?php

$myarray2=array(1=>300,500,600,800);
print_r($myarray2);
arsort($myarray2);
echo "<br/>**<br/>";
print_r($myarray2);
?>

结果:
Array ( [1] => 300 [2] => 500 [3] => 600 [4] => 800 )
**
Array ( [4] => 800 [3] => 600 [2] => 500 [1] => 300 )

36.数组的排序函数—根据自然排序法对数组排序natsort(),natcasesort()

所谓自然排序是1-9,a-z,短者优先

37.数组的排序函数—根据用户自定的规则对数组排序usrot(),uasort(),uksort()

两个参数,第一个是排序数组,第二个是自定义的排序函数名字符串(类似使用回调函数)
其他略

38.数组的排序函数—多维数组排序array_multisort()

两个参数,第一个是参数是参与排序的主要数组(首选数组),第二个参数,按照下一个输入数组中相应值得大小来排序。

39.拆分、合并、分解和接合数组
  • array_slice()
    从一段数组中去一段(连续的子集),第一个参数是被拆分数组,第二个参数是起始位置,第三个参数是返回数组长度,第四个参数是个布尔值,是否返回键名
<?php
$myarray2=array(1=>300,500,600,800,500);
print_r($myarray2);
$myarray=array_slice($myarray2, 2,3);
echo "<br/>**<br/>";
print_r($myarray);
?>

结果:
Array ( [1] => 300 [2] => 500 [3] => 600 [4] => 800 [5] => 500 )
**
Array ( [0] => 600 [1] => 800 [2] => 500 )

  • array_splice()
    删除一段元素(连续的子集),参数同上,但第四个参数表示之前删除的元素用第四个元素替代
<?php
$myarray2=array(1=>300,500,600,800,500);
print_r($myarray2);
array_splice($myarray2,2,3,"hi");
echo "<br/>**<br/>";
print_r($myarray2);
?>

结果:
Array ( [1] => 300 [2] => 500 [3] => 600 [4] => 800 [5] => 500 )
**
Array ( [0] => 300 [1] => 500 [2] => hi )

  • array_combine()
    合并两个数组来创建一个新数组,其中一个数组是键名
$myarray1=array(1,2,3,4,5);
print_r($myarray1);
echo "<br/>**<br/>";
$myarray2=array(1=>300,500,600,800,500);
print_r($myarray2);
$myarray3=array_combine($myarray1,$myarray2);
echo "<br/>**<br/>";
print_r($myarray3);
?>

Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
**
Array ( [1] => 300 [2] => 500 [3] => 600 [4] => 800 [5] => 500 )
**
Array ( [1] => 300 [2] => 500 [3] => 600 [4] => 800 [5] => 500 )

  • array_merge()
    数组融合,多个数组融合为一个数组
<?php
$myarray1=array(2=>500,400,900,600,700);
print_r($myarray1);
echo "<br/>**<br/>";
$myarray2=array(1=>300,500,600,800,500);
print_r($myarray2);
$myarray3=array_merge($myarray1,$myarray2);
echo "<br/>**<br/>";
print_r($myarray3);
?>

结果:
Array ( [2] => 500 [3] => 400 [4] => 900 [5] => 600 [6] => 700 )
**
Array ( [1] => 300 [2] => 500 [3] => 600 [4] => 800 [5] => 500 )
**
Array ( [0] => 500 [1] => 400 [2] => 900 [3] => 600 [4] => 700 [5] => 300 [6] => 500 [7] => 600 [8] => 800 [9] => 500 )

  • array_interset()
    两个数组的交集
<?php
$myarray1=array(2=>500,400,300,600,700);
print_r($myarray1);
echo "<br/>**<br/>";
$myarray2=array(1=>300,500,600,800,500);
print_r($myarray2);
$myarray3=array_intersect($myarray1,$myarray2);
echo "<br/>**<br/>";
print_r($myarray3);
?>

结果:
Array ( [2] => 500 [3] => 400 [4] => 300 [5] => 600 [6] => 700 )
**
Array ( [1] => 300 [2] => 500 [3] => 600 [4] => 800 [5] => 500 )
**
Array ( [2] => 500 [4] => 300 [5] => 600 )

  • array_diff()
    返回两个数组的差集
<?php
$myarray1=array(2=>500,400,300,600,700);
print_r($myarray1);
echo "<br/>**<br/>";
$myarray2=array(1=>300,500,600,800,500);
print_r($myarray2);
$myarray3=array_diff($myarray1,$myarray2);
echo "<br/>**<br/>";
print_r($myarray3);
?>

Array ( [2] => 500 [3] => 400 [4] => 300 [5] => 600 [6] => 700 )
**
Array ( [1] => 300 [2] => 500 [3] => 600 [4] => 800 [5] => 500 )
**
Array ( [3] => 400 [6] => 700 )

40.数组与数据结构–使用数组实现堆栈 push()

进栈:array_push():向数组压入新的元素
出栈:array_pop():向数组中删除最后一个元素

<?php
$myarray1=array(2=>500,400,300,600,700);
print_r($myarray1);
echo "<br/>**<br/>";

echo array_push($myarray1,8888,6666);
echo "<br/>**<br/>";//输出长度为7
print_r($myarray1);
echo "<br/>**<br/>";
echo array_pop($myarray1);
print_r($myarray1);

?>

结果:
Array ( [2] => 500 [3] => 400 [4] => 300 [5] => 600 [6] => 700 )
**
7
**
Array ( [2] => 500 [3] => 400 [4] => 300 [5] => 600 [6] => 700 [7] => 8888 [8] => 6666 )
**
6666Array ( [2] => 500 [3] => 400 [4] => 300 [5] => 600 [6] => 700 [7] => 8888 )

41.数组与数据结构–使用数组实现队列 array_shift()

先进后出栈,array_shift()只有一个参数,即用来实现队列的数组。本函数功能是将第一个元素移除,数组长度减一,后面的元素向前移动一位。

<?php
$myarray1=array(2=>500,400,300,600,700);
print_r($myarray1);
echo "<br/>**<br/>";
array_shift($myarray1);
print_r($myarray1);

?>

结果:
Array ( [2] => 500 [3] => 400 [4] => 300 [5] => 600 [6] => 700 )
**
Array ( [0] => 400 [1] => 300 [2] => 600 [3] => 700 )

42.其他有用的数组处理函数–array_rand()

array_rand()接收一个数组作为输入数组,从数组中随机选出一个或多个元素。第一个参数是数组,,第二个参数可选,指明想取多少个元素。返回随机数组元素的键名

<?php
$myarray1=array(2=>500,400,300,600,700);
print_r($myarray1);
echo "<br/>**<br/>";
$myarray2=array_rand($myarray1,3);
print_r($myarray2);
echo "<br/>**<br/>";
print_r($myarray1[$myarray2[0]]);
echo "<br/>**<br/>";
print_r($myarray1[$myarray2[1]]);
echo "<br/>**<br/>";
print_r($myarray1[$myarray2[2]]);
?>

结果:
Array ( [2] => 500 [3] => 400 [4] => 300 [5] => 600 [6] => 700 )
**
Array ( [0] => 3 [1] => 4 [2] => 6 )
**
400
**
300
**
700

43.其他有用的数组处理函数–shuffle()

shuffle()将数组打乱顺序,随机化乱序

<?php
$myarray1=array(2=>500,400,300,600,700);
print_r($myarray1);
echo "<br/>**<br/>";
shuffle($myarray1);
print_r($myarray1);

?>

结果:
Array ( [2] => 500 [3] => 400 [4] => 300 [5] => 600 [6] => 700 )
**
Array ( [0] => 400 [1] => 300 [2] => 600 [3] => 700 [4] => 500 )

44.其他有用的数组处理函数–sum()

sum()求和

45.其他有用的数组处理函数–range()

创建一个等步长的数组,第一个参数为数组元素最小是,第二个参数为数组元素最大值,第三个参数为可选的步长。默认为1,

<?php
$myarray1=range(3,32,5);
print_r($myarray1);
?>

结果:
Array ( [0] => 3 [1] => 8 [2] => 13 [3] => 18 [4] => 23 [5] => 28 )

45.数组运算符

在这里插入图片描述

46.数组下标的注意事项

数组下标只能是整数或字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值