1.数组作用
2.数组定义
3.数组输出
4.数组组成
5.数组类型
6.数组赋值
7.数组遍历
8.超全局数组
9.数组系统函数
数组作用:
#一个变量可以存很多值,类型可以8种变量中的任意一种.
**
数组定义:
1.array()
$arr=array(1,2,3,5);
**
<?php
$arr=array(1,3,5,6,8,9,4,6,6,5,6,5,56,6,6,6,);
echo '<pre>';
print_r($arr);
echo '</pre>';
?>
2.[]
$arr=[1,2,3,5];
**
<?php
$arr=[1,3,5,6,8,9,4,6,6,5,6,5,56,6,6,6];
echo '<pre>';
print_r($arr);
echo '</pre>';
?>
数组输出:
**
echo '<pre>'
print_r($arr);
echo '</pre>'
pre快捷键:(pre.sublime-snippet)
**
<snippet>
<content><![CDATA[
echo '<pre>';
print_r(${1:\$arr});
echo '</pre>';
]]></content>
<tabTrigger>pre</tabTrigger>
<scope>source.php</scope>
<description>COOKIE['…']</description>
</snippet>
数组组成(元素):
1.下标 (key) (键)
2.值 (value) (值)
通过键获取值
<?php
$arr=[1,3,5,6,8,9,4,6,6,5,6,5,56,6,6,6];
echo $arr[3];
?>
数组类型:
1.索引数组
$arr=array(1,3,5);
**
<?php
$arr=array(1,1,22,3,3,5,6,66,6,6,6,);
echo '<pre>';
print_r($arr);
echo '</pre>';
?>
结果是
Array
(
[0] => 1
[1] => 1
[2] => 22
[3] => 3
[4] => 3
[5] => 5
[6] => 6
[7] => 66
[8] => 6
[9] => 6
[10] => 6
)
2.关联数组
**
<?php
$arr=array(
'item1'=>'linux',
'item2'=>'php',
'item3'=>'java',
);
echo '<pre>';
print_r($arr);
echo '</pre>';
?>
结果是
Array
(
[item1] => linux
[item2] => php
[item3] => java
)
3.混合数组
$arr=array(
5=>‘linux’,
‘item2’=>‘php’,
‘item3’=>‘java’
);
**
<?php
$arr=array(
'linux',
'item2'=>'php',
'item3'=>'java'
);
echo '<pre>';
print_r($arr);
echo '</pre>';
?>
结果是
Array
(
[0] => linux
[item2] => php
[item3] => java
)
数组赋值:
1.简单赋值
$arr[0]=‘html5’;
**
<?php
$arr=array(
'linux',
'item2'=>'php',
'item3'=>'java'
);
$arr[0]='html5';
echo '<pre>';
print_r($arr);
echo '</pre>';
?>
结果是
Array
(
[0] => html5
[item2] => php
[item3] => java
)
2.复杂赋值
$arr[100]=‘javascript’;
$arr[]=‘web’;
#它的下标是前面所有key中最大数字加1.
复杂赋值
<?php
$arr=array(
'linux',
'item2'=>'php',
'item3'=>'java'
);
$arr[]='html5';
$arr[100]='js';
$arr[]='css';
echo '<pre>';
print_r($arr);
echo '</pre>';
?>
结果是
Array
(
[0] => linux
[item2] => php
[item3] => java
[1] => html5
[100] => js
[101] => css
)
赋值3
<?php
for($i=0;$i<10;$i++){
$arr[]=$i;
};
echo '<pre>';
print_r($arr);
echo '</pre>';
?>
结果是
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
[6] => 6
[7] => 7
[8] => 8
[9] => 9
)
数组遍历:
1.for遍历
for($i=0;$i<5;$i++)){
echo "<p>{$i}----{$arr[$i]}</p>";
}
for索引数组遍历
<?php
$arr=array('linux','html','css','php','js');
for($i=0;$i<4;$i++){
echo $i.'-'.$arr[$i].'<br>';
};
?>
结果
0-linux
1-html
2-css
3-php
2.while…list…each遍历
while(list($key,$val)=each($arr)){
echo "<p>{$key}----{$val}</p>";
}
**
<?php
$arr=array(
'item1'=>'linux',
'item2'=>'js',
'item3'=>'php',
'item4'=>'java'
);
while(list($key,$val)=each($arr)){
echo "<p>{$key}---------{$val}</p>";
};
?>
结果是
item1---------linux
item2---------js
item3---------php
item4---------java
3.foreach遍历
foreach($arr as $key=>$val){
echo "<p>{$key}----{$val}</p>";
}
list函数
<?php
list($a,$b)=array('linux','html');
echo $a;
echo '<br>';
echo $b;
?>
结果是
linux
html
each函数读取数组
<?php
$arr=array(
'linux',
'item2'=>'php',
'item3'=>'java'
);
$arr1=each($arr);
echo '<pre>';
print_r($arr1);
echo '</pre>';
$arr2=each($arr);
echo '<pre>';
print_r($arr2);
echo '</pre>';
?>
结果是
Array
(
[1] => linux
[value] => linux
[0] => 0
[key] => 0
)
Array
(
[1] => php
[value] => php
[0] => item2
[key] => item2
)
**
<?php
$arr=array(
'item1'=>'linux',
'item2'=>'js',
'item3'=>'php',
'item4'=>'java'
);
foreach($arr as $key=>$val){
echo "<p>{$key}---------{$val}</p>";
};
?>
结果是
item1---------linux
item2---------js
item3---------php
item4---------java
超全局数组:
1.$_SERVER
**
<?php
echo '<pre>';
print_r($_SERVER);
echo '</pre>';
?>
结果是
Array
(
[MIBDIRS] => D:/xampp/php/extras/mibs
[MYSQL_HOME] => \xampp\mysql\bin
[OPENSSL_CONF] => D:/xampp/apache/bin/openssl.cnf
[PHP_PEAR_SYSCONF_DIR] => \xampp\php
[PHPRC] => \xampp\php
[TMP] => \xampp\tmp
[HTTP_HOST] => localhost
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_ACCEPT_LANGUAGE] => zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_CONNECTION] => keep-alive
[HTTP_UPGRADE_INSECURE_REQUESTS] => 1
[HTTP_CACHE_CONTROL] => max-age=0
[PATH] => C:\ProgramData\DockerDesktop\version-bin;C:\Program Files\Docker\Docker\Resources\bin;D:\python3.7.3\Scripts\;D:\python3.7.3\;C:\Program Files\Common Files\Siemens\Automation\Simatic OAM\bin;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\iCLS\;C:\Program Files\Intel\Intel(R) Management Engine Components\iCLS\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Common Files\Autodesk Shared\;C:\Users\HAHAHA\AppData\Local\Microsoft\WindowsApps;D:\Program Files\Java\jdk1.8.0_131\bin;D:\Program Files\CMake\bin;C:\Users\HAHAHA\AppData\Local\Programs\Python\Python37\Scripts\;C:\Users\HAHAHA\AppData\Local\Programs\Python\Python37\;D:\Program Files\PostgreSQL\10\bin\;D:\Program Files\PostgreSQL\10\lib\;D:\xampp\php;d:\Users\HAHAHA\AppData\Local\Programs\Microsoft VS Code Insiders\bin;C:\FWebRoot\vlc;C:\FWebRoot\Qt;;C:\FWebRoot\vlc;C:\FWebRoot\Qt;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\Common Files\Hongye Shared\CAD;D:\Program Files\nodejs\;D:\VisualField3;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps
[SystemRoot] => C:\Windows
[COMSPEC] => C:\Windows\system32\cmd.exe
[PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW
[WINDIR] => C:\Windows
[SERVER_SIGNATURE] =>
Apache/2.4.39 (Win64) OpenSSL/1.1.1b PHP/7.3.5 Server at localhost Port 80
[SERVER_SOFTWARE] => Apache/2.4.39 (Win64) OpenSSL/1.1.1b PHP/7.3.5
[SERVER_NAME] => localhost
[SERVER_ADDR] => ::1
[SERVER_PORT] => 80
[REMOTE_ADDR] => ::1
[DOCUMENT_ROOT] => D:/xampp/htdocs/php2/
[REQUEST_SCHEME] => http
[CONTEXT_PREFIX] =>
[CONTEXT_DOCUMENT_ROOT] => D:/xampp/htdocs/php2/
[SERVER_ADMIN] => postmaster@localhost
[SCRIPT_FILENAME] => D:/xampp/htdocs/php2/index.php
[REMOTE_PORT] => 50537
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] =>
[REQUEST_URI] => /
[SCRIPT_NAME] => /index.php
[PHP_SELF] => /index.php
[REQUEST_TIME_FLOAT] => 1567137212.05
[REQUEST_TIME] => 1567137212
)
1)SERVER_NAME
#域名
2)SERVER_ADDR
#服务器ip地址
3)SERVER_PORT
#服务器端口
4)REMOTE_ADDR
#客户端ip
5)DOCUMENT_ROOT
#网站根目录
6)REQUEST_SCHEME
#请求协议
7)SCRIPT_FILENAME
#当前脚本的系统绝对路径
8)QUERY_STRING
#给当前脚本传递的参数
9)REQUEST_URI
#网站绝对地址+参数
10)SCRIPT_NAME
#网站绝对地址
11)PHP_SELF
#网站绝对地址
2.$_GET
#获取给当前脚本传递的地址栏参数.
form表单get传值
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<h1>用户注册</h1>
<form action="reg.php">
<p>用户名:</p>
<p>
<input type="text" name='username'>
</p>
<p>密码:</p>
<p>
<input type="text" name='password'>
</p>
<p>
<input type="submit" value="ok">
</p>
</form>
</body>
</html>
reg.php
<?php
echo '<pre>';
print_r($_GET);
echo '</pre>';
?>
3.$_POST
#获取表单给当前脚本传递的post数据.
form表单post传值
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<h1>用户注册</h1>
<form action="reg.php" method="post">
<p>用户名:</p>
<p>
<input type="text" name='username'>
</p>
<p>密码:</p>
<p>
<input type="text" name='password'>
</p>
<p>
<input type="submit" value="ok">
</p>
</form>
</body>
</html>
reg.php
<?php
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>
4.$_REQUEST(不建议使用)
#获取表单给当前脚本传递的get数据.
#获取表单给当前脚本传递的post数据.
**
<?php
echo '<pre>';
print_r($_REQUEST);
echo '</pre>';
?>
5.$GLOBALS
#包含所有其他超全局数组.
**
6.$_COOKIE
7.$_SESSION
8.$_FILES
**
超全局作用:
1.预定义
1)php中提前已经定义好了.
**
2.超全局
1)函数外面可以用.
2)函数里面也可以用.
**
<?php
echo '<pre>';
print_r($_GET);
echo '</pre>';
function show(){
echo '<pre>';
print_r($_GET);
echo '</pre>';
}
show();
?>
结果是
Array
(
[username] => 123
[password] => 123
)
Array
(
[username] => 123
[password] => 123
)