目錄
PHP中常用的数组操作方法笔记整理,数组操作方法
首頁 後端開發 php教程 PHP中常用的数组操作方法笔记整理,数组操作方法_PHP教程

PHP中常用的数组操作方法笔记整理,数组操作方法_PHP教程

Jul 12, 2016 am 08:52 AM
php 陣列

PHP中常用的数组操作方法笔记整理,数组操作方法

概述
要访问一个变量的内容,可以直接使用其名称。如果该变量是一个数组,可以使用变量名称和关键字或索引的组合来访问其内容。
像其他变量一样,使用运算符=可以改变数组元素的内容。数组单元可以通过 array[key] 语法来访问。

2016516180436478.jpg (800×231)

数组的基本操作
php定义数组:

<&#63;php 
  $array = array(); 
  $array["key"] = "values"; 
&#63;> 
登入後複製

在PHP中声明数组的方式主要有两种:

1.用array()函数声明数组,
2.直接为数组元素赋值。

<&#63;php
  //array数组
  $users = array('phone','computer','dos','linux');
  echo $users;//只会打印出数据类型Array
  print_r($users);//Array ( [0] => phone [1] => computer [2] => dos [3] => linux )

  $numbers = range(1,5);//创建一个包含指定范围的数组
  print_r($numbers);//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
  print_r(true);//1
  var_dump(false);//bool(false)

//print_r可以把字符串和数字简单地打印出来,数组会以Array开头并已键值形式表示,print_r输出布尔值和null的结果没有意义,因此用var_dump更合适

//通过循环来显示数组里所有的值
  for($i = 0 ;$i < 5;$i++){
    echo $users[$i];
    echo '<br/>';
  }

//通过count/sizeof统计数组中单元数目或对象中的属性个数

  for($i = 0; $i < count($users);$i++){
    echo $users[$i];
    echo '<br/>';
  }
//还可以通过foreach循环来遍历数组,这种好处在于不需要考虑key
  foreach($users as $value){
    echo $value.'<br/>';//点号为字符串连接符号
  }
//foreach循环遍历 $key => $value;$key和$value是变量名,可以自行设置
  foreach($users as $key => $value){
    echo $key.'<br/>';//输出键
  }
&#63;>

登入後複製

创建自定义键的数组

<&#63;php

  //创建自定义键的数组
  $ceo = array('apple'=>'jobs','microsoft'=>'Nadella','Larry Page','Eric');
  //如果不去声明元素的key,它会从零开始
  print_r($ceo);//Array ( [apple] => jobs [microsoft] => Nadella [0] => Larry Page [1] => Eric )

  echo $ceo['apple'];//jobs

   //php5.4起的用法
  $array = [
    "foo" => "bar",
    "bar" => "foo",
  ];

  print_r($array);//Array ( [foo] => bar [bar] => foo ) 

&#63;>  

登入後複製

从php5.4 起可以使用短数组定义语法,用 [] 替代 array()。有点类似于javascript中数组的定义。

each()的使用

<&#63;php
  //通过为数组元素赋值来创建数组
  $ages['trigkit4'] = 22;
  echo $ages.'<br/>';//Array
  //因为相关数组的索引不是数字,所以无法通过for循环来进行遍历操作,只能通过foreach循环或list()和each()结构

  //each的使用
  //each返回数组中当前的键/值对并将数组指针向前移动一步
  $users = array('trigkit4'=>22,'mike'=>20,'john'=>30);
  //print_r(each($users));//Array ( [1] => 22 [value] => 22 [0] => trigkit4 [key] => trigkit4 )

  //相当于:$a = array([0]=>trigkit4,[1]=>22,[value]=>22,[key]=>trigkit4);
  $a = each($users);//each把原来的数组的第一个元素拿出来包装成新数组后赋值给$a
  echo $a[0];//trigkit4

  //!!表示将真实存在的数据转换成布尔值
  echo !!each($users);//1

&#63;> 

登入後複製

each的指针指向第一个键值对,并返回第一个数组元素,获取其键值对,并包装成新数组

list()的使用
list用来把数组用的值赋给一些变量,看下面例子:

<&#63;php

  $a = ['2','abc','def'];
  list($var1,$var2) = $a;
  echo $var1.'<br/>';//2
  echo $var2;//abc

  $a = ['name'=>'trigkit4','age'=>22,'0'=>'boy'];
  //list只认识key为数字的索引
  list($var1,$var2) = $a;

  echo $var1;//boy

&#63;>

登入後複製

注:list只认识key为数字的索引

数组元素的排序
反向排序:sort()、asort()和 ksort()都是正向排序,当然也有相对应的反向排序.
实现反向:rsort()、arsort()和 krsort()。

array_unshift()函数将新元素添加到数组头,array_push()函数将每个新元素添加到数组 的末尾。
array_shift()删除数组头第一个元素,与其相反的函数是 array_pop(),删除并返回数组末 尾的一个元素。
array_rand()返回数组中的一个或多个键。

函数shuffle()将数组个元素进 行随机排序。
函数 array_reverse()给出一个原来数组的反向排序
数组的各类API的使用
count()和 sizeof()统计数组下标的个数
array_count_values()统计数组内下标值的个数

<&#63;php
  $numbers = array('100','2');
  sort($numbers,SORT_STRING);//按字符串排序,字符串只比较第一位大小
  print_r($numbers);//Array ( [0] => 100 [1] => 2 )

  $arr = array('trigkit4','banner','10');
  sort($arr,SORT_STRING);
  print_r($arr);//Array ( [0] => 10 [1] => banner [2] => trigkit4 )

  shuffle($arr);
  print_r($arr);//随机排序

  $array = array('a','b','c','d','0','1');
  array_reverse($array);
  print_r($array);//原数组的反向排序。 Array ( [0] => a [1] => b [2] => c [3] => d [4] => 0 [5] => 1 )


  //数组的拷贝
  $arr1 = array( '10' , 2);
  $arr2 = &$arr1 ;
  $arr2 [] = 4 ; // $arr2 被改变了,$arr1仍然是array('10', 3)
  print_r($arr2);//Array ( [0] => 10 [1] => 2 [2] => 4 )

  //asort的使用
  $arr3 = & $arr1 ;//现在arr1和arr3是一样的
  $arr3 [] = '3' ;
  asort($arr3);//对数组进行排序并保留原始关系
  print_r($arr3);// Array ( [1] => 2 [2] => 3 [0] => 10 )

  //ksort的使用
  $fruits = array('c'=>'banana','a'=>'apple','d'=>'orange');
  ksort($fruits);
  print_r($fruits);//Array ( [a] => apple [c] => banana [d] => orange )

  //unshift的使用
  array_unshift($array,'z');//开头处添加一元素
  print_r($array);//Array ( [0] => z [1] => a [2] => b [3] => c [4] => d [5] => 0 [6] => 1 ) 

  //current(pos)的使用
  echo current($array);//z;获取当前数组中的当前单元

  //next的使用
  echo next($array);//a;将数组中的内部指针向前移动一位

  //reset的使用
  echo reset($array);//z;将数组内部指针指向第一个单元

  //prev的使用
  echo next($array);//a;
  echo prev($array);//z;倒回一位

  //sizeof的使用
  echo sizeof($array);//7;统计数组元素的个数

  //array_count_values
  $num = array(10,20,30,10,20,1,0,10);//统计数组元素出现的次数
  print_r(array_count_values($num));//Array ( [10] => 3 [20] => 2 [30] => 1 [1] => 1 [0] => 1 ) 

&#63;>  

登入後複製

current():每个数组都有一个内部指针指向他的当前单元,初始指向插入到数组中的第一个元素

for循环遍历

<&#63;php
  $value = range(0,120,10);
  for($i=0;$i<count($value);$i++){
    print_r($value[$i].' ');//0 10 20 30 40 50 60 70 80 90 100 110 120 
  }
&#63;>
登入後複製

数组的实例
array_pad函数的使用

<&#63;php
  //array_pad函数,数组数组首尾选择性追加
  $num = array(1=>10,2=>20,3=>30);
  $num = array_pad($num,4,40);
  print_r($num);//Array ( [0] => 10 [1] => 20 [2] => 30 [3] => 40 )

  $num = array_pad($num,-5,50);//array_pad(array,size,value)
  print_r($num);//Array ( [0] => 50 [1] => 10 [2] => 20 [3] => 30 [4] => 40 ) 
&#63;>

登入後複製

size:指定的长度。整数则填补到右侧,负数则填补到左侧。

unset()的使用

 <&#63;php
  //unset()的使用
  $num = array_fill(0,5,rand(1,10));//rand(min,max)
  print_r($num);//Array ( [0] => 8 [1] => 8 [2] => 8 [3] => 8 [4] => 8 ) 
  echo '<br/>';

  unset($num[3]);
  print_r($num);//Array ( [0] => 8 [1] => 8 [2] => 8 [4] => 8 ) 
&#63;>

登入後複製

array_fill()的使用

<&#63;php
  //array_fill()的使用
  $num = range('a','e');
  $arrayFilled = array_fill(1,2,$num);//array_fill(start,number,value)
  echo '<pre class="brush:php;toolbar:false">';

  print_r($arrayFilled);

&#63;>

登入後複製

array_combine()的使用

<&#63;PHP
  $number = array(1,2,3,4,5);
  $array = array("I","Am","A","PHP","er");
  $newArray = array_combine($number,$array);
  print_r($newArray);//Array ( [1] => I [2] => Am [3] => A [4] => PHP [5] => er ) 
&#63;> 
登入後複製

array_splice()删除数组成员

<&#63;php
  $color = array("red", "green", "blue", "yellow");
  count ($color); //得到4
  array_splice($color,1,1); //删除第二个元素
  print_r(count ($color)); //3
  echo $color[2]; //yellow
  echo $color[1]; //blue
&#63;> 
登入後複製

array_unique删除数组中的重复值

<&#63;php
  $color=array("red", "green", "blue", "yellow","blue","green");
  $result = array_unique($color);
  print_r($result);//Array ( [0] => red [1] => green [2] => blue [3] => yellow ) 
&#63;> 
登入後複製

array_flip()交换数组的键值和值

<&#63;PHP
  $array = array("red","blue","red","Black");
  print_r($array);
  echo "<br />";
  $array = array_flip($array);//
  print_r($array);//Array ( [red] => 2 [blue] => 1 [Black] => 3 ) 
&#63;> 
登入後複製

array_search()搜索数值

<meta charset="utf-8">
<&#63;php
  $array = array("red","blue","red","Black");
  $result=array_search("red",$array)//array_search(value,array,strict)
  if(($result === NULL)){
    echo "不存在数值red";
  }else{
    echo "存在数值 $result";//存在数值 0 
  }
&#63;> 
登入後複製

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1127879.htmlTechArticlePHP中常用的数组操作方法笔记整理,数组操作方法 概述 要访问一个变量的内容,可以直接使用其名称。如果该变量是一个数组,可以使用...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

See all articles