PHP第六课 数组的用法_PHP教程
PHP第六课 数组的用法
学习概要:
*了解基本的数组函数的使用
*懂得数组的遍历
*了解超全局数组的基本关系与使用
数组
1.数组定义和遍历2.数组函数
数组定义:
$arr=array(1,2,3);//索引数组,下标全是数字
$arr=array("name"=>"user1","age"=>"30");//关联数组,下标中包含字母
//下标只有两种,要么是字母,要是是不带双引号的数字
<?php $arr=array("name"=>1,3,"age"=>4,5,100=>6,7,400=>8,9); echo "<pre class="code">"; print_r ($arr); echo "
数组下标:
如果是字母
$arr=array("name"=>1,3,"age"=>4,5,100=>6,7,400=>8,9);
//下标打印:"name" 0
[name] => 1
[0] => 3
[age] => 4
[1] => 5
[100] => 6
[101] => 7
[400] => 8
[401] => 9
数组取值:
1.输出整个数组
print_r($arr)
2.输出数组中的某个值
$arr=array("name"=>1,3,"age"=>4,5,"100"=>6,7,"400"=>8,9); echo $arr['age']; echo "<br>"; echo $arr[100];
3.数组赋值:
1.$arr['age']=30;
数组赋值也可以定义数组:
$arr[]=1;
$arr[]=2;
4.数组遍历:
1.for循环
<?php $arr[]=1; $arr[]=2; $arr[]=3; $arr[]=4; $arr[]=5; $arr[]=6; for($i=0;$i<5;$i++){ echo "<h1 id="第-i-个人的名字是-arr-i">第".($i+1)."个人的名字是{$arr[$i]}</h1>"; } ?>
循环加判断:
<?php $arr[]=1; $arr[]=2; $arr[]=3; $arr[]=4; $arr[]=5; $arr[]=6; for($i=0;$i<5;$i++){ if($i%2==0){ echo "<h1 id="第-i-个人的名字是-arr-i">第".($i+1)."个人的名字是{$arr[$i]}</h1>"; }else{ echo "<h1 id="第-i-个人的名字是-arr-i">第".($i+1)."个人的名字是{$arr[$i]}</h1>"; } } ?>
2.foreach循环
foreach 进行数组遍历:
<?php //键值对 name="user1" 就是数组下标和值,key和value $arr['name']="junzai"; $arr['age']=20; $arr['sex']="man"; $arr[]="abc"; echo "<pre class="code">"; print_r ($arr); echo "
{$key}:{$val}
"; }else{ echo "{$key}:{$val}
"; } } ?>3.while....list ..each 循环遍历
while(list($key,$val)=each($arr)){
echo $key.$val;
}
//推荐使用foreach遍历数组
多维数组:
1.一维数组 $arr=array(1,2,3);
$arr[0];
2.二维数组 $arr=array(1,2,array(4,5));
$arr[2][0];
2.二维数组 $arr=array(1,2,array(3,array(4,5)));
$arr[2][1][0];
二维数组遍历:
<?php header("content-type:text/html;charset=utf-8"); $arr=array("a","b",array("c","d"),array("e")); echo "<pre class="code">"; print_r($arr); echo "
"; foreach($arr as $val){ if(is_array($val)){ foreach($val as $val2){ echo $val2."
"; } } else{ echo $val."
"; } } ?>
三维数组取值:
<?php header("content-type:text/html;charset=utf-8"); $arr=array("a","b",array("c","d"),array("e",array("f","z"))); echo "<pre class="code">"; print_r($arr); echo "
"; foreach($arr as $val){ if(is_array($val)){ foreach($val as $val2){ if(is_array($val2)){ foreach($val2 as $val3){ echo $val3."
"; } }else { echo $val2."
"; } } } else{ echo $val."
"; } } ?>
//推荐使用一维数组和二维数组
一张数据表其实就是一个二维数组,里面的每一行记录就是一个一维数组
查询数据库:
<?php header("content-type:text/html;charset=utf-8"); mysql_connect("localhost","root","1234"); mysql_select_db("test"); mysql_query("set names utf8"); $sql = "select * from user"; $result = mysql_query($sql); $row1 = mysql_fetch_assoc($result); echo "<pre class="code">"; print_r($row1); echo "
超全局数组:
超全局数组
$_SERVER
$_GET
$_POST
$_REQUEST
$_FILES
$_COOKIES
$_SESSION
$GLOBALS
$_SERVER 查看服务器信息
<?php header("content-type:text/html;charset=utf-8"); echo "<pre class="code">"; print_r($_SERVER); echo "
Apache/2.2.8 (Win32) PHP/5.2.6 Server at localhost Port 80
[SERVER_SOFTWARE] => Apache/2.2.8 (Win32) PHP/5.2.6
[SERVER_NAME] => localhost//服务器域名
[SERVER_ADDR] => 127.0.0.1//服务器ip
[SERVER_PORT] => 80//端口号
[REMOTE_ADDR] => 127.0.0.1 //客户端访问ip
[DOCUMENT_ROOT] => E:/AppServ/www
[SERVER_ADMIN] => goxuexi@126.com
[SCRIPT_FILENAME] => E:/AppServ/www/index.php //脚本文件名字的绝对路径
[REMOTE_PORT] => 49881
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] => //请求字符串
[REQUEST_URI] => ///请求url地址
[SCRIPT_NAME] => /index.php//脚本名称(相对网站根目录)
[PHP_SELF] => /index.php
[REQUEST_TIME] => 1407568551//访问时间
[argv] => Array
(
)
[argc] => 0
)
$_GET 获取用get提交过来的数据
http://localhost/index.php?id=10&name=user1
两个页面之间通讯:
1.表单传值
第一种:get方式
第二种:post方式
2.a标签传值
只能用get方式
a标签推荐使用get方式提交数据
表单推荐使用post方式提交数据
magic_quotes_gpc = on;表示开启了get请求的时候,会讲get数据中的'前面加\
get实例:
index.php
<html> <head> <title> 接收信息 </title> </head> <body> junjun2<br> junzai3<br> junjun4<br> junjun5<br> </body> </html>
rev.php
<html> <head> <title> 接收信息 </title> </head> <body> <h1>欢迎: <?php echo $_GET['name'];?> </h1> <hr> <h1 id="姓名-php-echo-GET-name">姓名:<?php echo $_GET['name']?></h1> <h1 id="年龄-php-echo-GET-age">年龄:<?php echo $_GET['age']?></h1> </body> </html>
post实例
$_POST:获取表单post过来的数据
index.php
<html> <head> <title> 接收信息 </title> </head> <body> <h1 id="提交用户信息">提交用户信息</h1> </body> </html>
rev.php
<html> <head> <header content-type="text/html";charset="gbk"> <title> 接收信息 </title> </head> <body> <h1>欢迎: <?php echo $_POST['name'];?> </h1> <hr> <h1 id="姓名-php-echo-POST-name">姓名:<?php echo $_POST['name']?></h1> <h1 id="年龄-php-echo-POST-age">年龄:<?php echo $_POST['age']?></h1> </body> </html>
$_REQUEST
获取a或者表单get或post过来的数据.
$_COOKIES
同一个页面在多个页面获取
$_SESSION
同一个变量在多个页面获取到
$_FILES
获取表单中的文件,并生成一个数组.
$GLOBALS
$GLOBALS[_SERVER]
$GLOBALS[_GET]
$GLOBALS[_POST]
$GLOBALS[_FILES]
$GLOBALS[_REQUEST]
$GLOBALS[_COOKIES]
$GLOBALS[username]//里面包含页面内的全局变量,并且通过$GLOBALS[username]="user2"改变$username的值.
实例:使用$GLOBALS改变全局变量的值.
<?php $username111="user1"; function show(){ $GLOBALS[username111]="USER2"; } show(); echo $username111; echo "<pre class="code">"; print_r($GLOBALS); echo "
转载请注明出处: http://blog.csdn.net/junzaivip

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 배열에서 중복 요소를 제거하기 위해 foreach 루프를 사용하는 방법은 다음과 같습니다. 배열을 순회하고 요소가 이미 존재하고 현재 위치가 첫 번째 항목이 아닌 경우 삭제합니다. 예를 들어, 데이터베이스 쿼리 결과에 중복된 레코드가 있는 경우 이 방법을 사용하면 이를 제거하고 중복된 레코드가 없는 결과를 얻을 수 있습니다.

PHP 배열 키 값 뒤집기 방법의 성능 비교는 array_flip() 함수가 대규모 배열(100만 개 이상의 요소)에서 for 루프보다 더 나은 성능을 발휘하고 시간이 덜 걸리는 것을 보여줍니다. 키 값을 수동으로 뒤집는 for 루프 방식은 상대적으로 시간이 오래 걸립니다.

다차원 배열 정렬은 단일 열 정렬과 중첩 정렬로 나눌 수 있습니다. 단일 열 정렬은 array_multisort() 함수를 사용하여 열별로 정렬할 수 있습니다. 중첩 정렬에는 배열을 순회하고 정렬하는 재귀 함수가 필요합니다. 실제 사례로는 제품명별 정렬, 판매량 및 가격별 복합 정렬 등이 있습니다.

PHP에서 배열을 깊게 복사하는 방법에는 json_decode 및 json_encode를 사용한 JSON 인코딩 및 디코딩이 포함됩니다. array_map 및 clone을 사용하여 키와 값의 전체 복사본을 만듭니다. 직렬화 및 역직렬화를 위해 직렬화 및 역직렬화를 사용합니다.

PHP에서 배열 전체 복사를 수행하는 가장 좋은 방법은 json_decode(json_encode($arr))를 사용하여 배열을 JSON 문자열로 변환한 다음 다시 배열로 변환하는 것입니다. unserialize(serialize($arr))를 사용하여 배열을 문자열로 직렬화한 다음 새 배열로 역직렬화합니다. RecursiveIteratorIterator를 사용하여 다차원 배열을 재귀적으로 순회합니다.

PHP의 array_group_by 함수는 키 또는 클로저 함수를 기반으로 배열의 요소를 그룹화하여 키가 그룹 이름이고 값이 그룹에 속한 요소의 배열인 연관 배열을 반환할 수 있습니다.

PHP의 array_group() 함수를 사용하면 지정된 키로 배열을 그룹화하여 중복 요소를 찾을 수 있습니다. 이 함수는 다음 단계를 통해 작동합니다. key_callback을 사용하여 그룹화 키를 지정합니다. 선택적으로 value_callback을 사용하여 그룹화 값을 결정합니다. 그룹화된 요소 수를 계산하고 중복 항목을 식별합니다. 따라서 array_group() 함수는 중복된 요소를 찾고 처리하는 데 매우 유용합니다.

PHP 배열 병합 및 중복 제거 알고리즘은 병렬 처리를 위해 원본 배열을 작은 블록으로 나누는 병렬 솔루션을 제공하며, 기본 프로세스는 중복 제거를 위해 블록의 결과를 병합합니다. 알고리즘 단계: 원본 배열을 동일하게 할당된 작은 블록으로 분할합니다. 중복 제거를 위해 각 블록을 병렬로 처리합니다. 차단 결과를 병합하고 다시 중복 제거합니다.
