PHP笔记之数组

PHP的数组功能很强大,有很多和OC或者其他语言不一样的地方,譬如说其数组元素不限制类型,这种类似于swift的元组。以下是其相关特性:
1.数组中的元素 由键和值构成,key/value
2.两种下标类型:①整数(索引数组) ②字符串
3.[ ]来操作下标,也可以用{}进行互换,建议使用[ ]来指定下标
4.如果是关联数组,一定要带引号,不要使用常量名称,处理速度较之慢8倍


数组

数组声明时,如果[ ]中没有下标,往数组中添加元素是按自动增长的下标顺序来赋值

$arr = array();
for($i = 0;$i<2;$i++){
    array[ ] = $i * $i;
}
echo'<pre>';//数组的最原始形态语句
print_r($arr); //array[0] = 0 ;[array[1] = 1;
echo'</pre>;

数组的自动增长下标默认是从0开始,自动增长的出现过的最大值加1;
关联数组的字符串下标,不会影响索引下标的排列规则;
负数也可以做下标;

$arr[ ] = 10;//下标0
$arr[ ] = 10;//下标1
$arr[8] = 10;//下标8
$arr[ ] = 10;//下标9
$arr[9] = 10;//下标9覆盖上一个
$arr[4] = 10;//下标4
$arr[ ] = 18;//下标10
$arr['one'] = 66;
$arr[ ] = 99;//下标11
$arr[-100] = 11;//下标-100
$arr[ ]  = 20;//下标12

数组的声明

方式1:

$arr =  array("aaa","two"=>"bbb",9=>"ccc","ddd");

方式2:php5.4以后 短数组定义语法

$arr = ["aaa","bbb",333,9=>444,555];

删除数组中的一个元素使用unset(),下标不会重新索引,需要使用array_values()函数重新索引

$arr = ["one","two","three","four"];
unset($arr[2]);//Array ( [0] => one [1] => two [3] => four )
$arr = array_values($arr);
print_r(arr);
//Array ( [0] => one [1] => two [2] => four )

多维数组可以调用方式和OC类似,不过多了一个关联下标的形式

$arr[1]["one"];

数组的遍历

for循环

效率最高,但数组下标比一定连续,关联数组无法遍历出值

$arr = array("wp","wo","we","ew");
 $num = count($arr);
 for($i=0; $i < $num; $i++) { 
    echo $arr[i];
 }

foreach

有多少元素,循环多少次

foreach ($variable as $key => $value) {
    可以把键值都返回
 }

联合使用List(),each()和while循环

List()函数

将数组中的元素转为变量使用
①等号左边使用List()函数,等号右边只能是一个数组。
②数组中有几个元素,在list()中就用几个参数,而且参数必须是变量(新声明的自定义变量),不能是值

③只能将索引数组(下标是连续的),转为变量,是从0开始

④可以在list()参数中通过,空项选择性的接收数组中的元素

list($a, ,$c) = array("123","sp","we");
echo $a."<br>";
echo $c."<br>"; 

list($name,$pro) = explode("_",$str);
echo $name."<br>";
echo $pro."<br>";
each()函数

只是一个函数,参数就是一个数组,返回值也是一个数组
①返回的值是一个数组,数组固定有4个元素,且下标也是固定的(1(值)Value(值)0(下标)key(下标))
②each()只处理当前的元素(默认当前元素为第一个元素,指针指向第一个)转为数组信息后,处理完后,指针指向下一个元素
③如果指定已经在结束位置了,如果再使用each()获取元素,返回false

$arr = array("one"=>"wp","wo","we");
    echo '<pre>';
    $one = each($arr); 

    print_r($one);
    $one = each($arr);

    print_r($one);
    $one = each($arr);

    print_r($one);
    $one = each($arr);

    var_dump($one);
    echo '</pre>';
//返回结果
Array ( [1] => wp [value] => wp [0] => one [key] => one ) 
Array ( [1] => wo [value] => wo [0] => 0 [key] => 0 ) 
Array ( [1] => we [value] => we [0] => 1 [key] => 1 ) 
bool(false) 
List()、each()、while联合使用
$arr = ["one"=>"妹纸","wp","we","ee"];
while (list($key,$value) = each($arr)) {
        echo "{$key} => {$value}<br>";
    }

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

   next($arr);//下一个
    end($arr);//最后一个
    prev($arr);//前一个
    reset($arr);//重置
    key($arr);//获取当前下标
    current($arr);//获取当前值
超全局数组

超全局数组,系统已经声明完的变量,可以直接使用。每个预定义数组都有自己独特的功能。
常用的超全局数组

$_SERVER 服务器变量,可以获取服务器所有的信息
$_ENV 环境变量
$_GET 接收用户通过URL向服务器传的参数
$_POST 接收用户通过HTTP协议向服务器传的参数 
$GLOBALS
$_REQUEST 有安全风险,一般不用
$_FILES 上传文件信息
$_COOKIE     
 $_SESSION 
 $GLOBALS  = array("123","wp");
    function demo(){
        // echo $GLOBALS.'<br>';
        // print_r($GLOBALS).'<br>';
        foreach ($GLOBALS as $son => $fuck) {
            echo $son.$fuck.'<br>';
        }
    }
    demo();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351

推荐阅读更多精彩内容

  • array_change_key_case — 返回字符串键名全为小写或大写的数组 array_chunk — 将...
    人在码途阅读 321评论 0 0
  • 第三章 数组 数组是一个可以存储一组或一系列数值的变量 一个包含其他数组的数组称为多维数组。 关联数组允许使用更...
    梁烨端木阅读 674评论 0 0
  • 大家不要吐槽我写的乱,其实是简书的markdown编辑器有问题,看内容感觉写的很乱。我联系过简书的技术人员,连我理...
    Airmole阅读 957评论 0 4
  • 数组的概述 PHP 中的数组实际上是一个有序图。图是一种把 values 映射到 keys 的类型。此类型在很多方...
    dptms阅读 1,602评论 0 4
  • 青子矜, 眉已皱, 缠绵退三分千字诀无释消愁。 悠我心, 醉相流, 对酌南山下道总是下个春秋。 夜莺啼, 薄暮丑,...
    墨子龙阅读 255评论 1 6