PHP基础语法(五)

一、定义语法

1、索引数组

2、php5.4之后简化的语法

3、关联数组

4、多维数组

php 复制代码
$colors = array("Red", "Green", "Blue");
php 复制代码
$colors = ["Red", "Green", "Blue"];
php 复制代码
$person = array("name" => "John", "age" => 30, "city" => "New York");
php 复制代码
$employees = array(
    array("name" => "John", "age" => 30, "job" => "Developer"),
    array("name" => "Jane", "age" => 25, "job" => "Designer")
);

PHP数组特点:

1、可以整数下标或者字符串下标

若数组下标均为整数,则称为索引数组。

若数组下标均为字符串,则称为关联数组

混合下标的话称为混合数组

2、数组元素的顺序以放入顺序为准,与下标无关

3、数字下标的增长特性:从0开始自动增长,若中间手动加入较大的下标,则后面则会从当前最大下标+1增长。

4、特殊值下标的自动转换

php 复制代码
<?php
// 特殊下标自动转换
$arr1[false] = false;
$arr1[true] = true;
$arr1[NULL] = NULL;
var_dump($arr1); // array(3)([0]=>bool(false),[1]=>bool(true) [""]->NULL)

5、PHP数组中类型元素没有限制。

6、PHP中数组元素没有长度限制。

补充:PHP中数组是很大的数据,故会存储在堆区。

二、遍历数组

使用 foreach 循环

php 复制代码
foreach ($array as $value) {
    // 执行操作,$value 是数组 $array 中的每个元素的值
}

关联数组的遍历

php 复制代码
$person = ["name" => "John", "age" => 30, "city" => "New York"];

foreach ($person as $key => $value) {
    echo "$key: $value <br>";
}

输出:

php 复制代码
name: John
age: 30
city: New York

索引数组的遍历

php 复制代码
$colors = ["Red", "Green", "Blue"];

foreach ($colors as $index => $color) {
    echo "Index $index: $color <br>";
}

输出:

php 复制代码
Index 0: Red
Index 1: Green
Index 2: Blue

三、数组相关函数

a、数组排序函数

1、sort():对数组进行升序排序。键值关联性被丢弃,即键名被重置为整数索引。

php 复制代码
$arr = [3, 1, 2];
sort($arr);
print_r($arr);  // 输出:[1, 2, 3]

2、rsort():对数组进行降序排序。键值关联性同样被丢弃。

php 复制代码
$arr = [3, 1, 2];
rsort($arr);
print_r($arr);  // 输出:[3, 2, 1]

3、asort() :按值保持索引关联性的升序排序。

php 复制代码
$arr = ['b' => 3, 'a' => 1, 'c' => 2];
asort($arr);
print_r($arr);  // 输出:['a' => 1, 'c' => 2, 'b' => 3]

4、arsort():按值保持索引关联性的降序排序。

php 复制代码
$arr = ['b' => 3, 'a' => 1, 'c' => 2];
arsort($arr);
print_r($arr);  // 输出:['b' => 3, 'c' => 2, 'a' => 1]

5、ksort():按键名升序排序。

php 复制代码
$arr = ['b' => 3, 'a' => 1, 'c' => 2];
ksort($arr);
print_r($arr);  // 输出:['a' => 1, 'b' => 3, 'c' => 2]

6、krsort():按键名降序排序。

php 复制代码
$arr = ['b' => 3, 'a' => 1, 'c' => 2];
krsort($arr);
print_r($arr);  // 输出:['c' => 2, 'b' => 3, 'a' => 1]

sort()rsort() 适用于索引数组;

asort()arsort() 适用于关联数组并保持键值关联;

ksort()krsort() 则按照键名进行排序。
print_r 函数会将变量以人类可读的方式输出到浏览器或者命令行界面。对于数组,它会显示数组的键和值,并且会自动递归地显示多维数组的内容。
shuffle() 是 PHP 中用来随机打乱数组元素顺序的函数。它会随机地重新排列数组中的元素,返回一个打乱顺序后的数组,数组下标会重排。

b、数组指针函数

  1. current():

    • 返回数组中当前指针位置的元素值。
  2. key():

    • 返回数组中当前指针位置的键名。
  3. next():

    • 将数组指针向前移动一位,并返回当前元素的值。(下一个元素的值)
  4. prev():

    • 将数组指针向后移动一位,并返回当前元素的值。(上一个元素的值)
  5. reset():

    • 将数组指针重置到第一个元素,并返回第一个元素的值。
  6. end():

    • 将数组指针指向最后一个元素,并返回最后一个元素的值。
  7. each():

    • 返回当前元素的键名和值,并将指针向前移动一位。每次调用 each() 函数会返回一个包含四个元素的数组:[0] => key, [1] => value, 'key' => key, 'value' => value]。如果已经遍历到数组末尾,则返回 false

next,prev会移动指针,可能导致超出数组,此时再使用next、prev便不能再返回数组,只
能通过end/reset。

c、其他函数

  1. count():返回数组中的元素数目。

  2. array_push() :将一个或多个元素压入数组的末尾。

  3. array_pop() :弹出数组的最后一个元素

  4. array_shift() :将数组的第一个元素移出并返回

  5. array_unshift() :在数组开头插入一个或多个元素

  6. array_reverse():返回一个翻转顺序后的数组。

  7. in_array():检查数组中是否存在指定的值。

  8. array_values():返回数组中所有的值,重新建立索引。

  9. array_reverse():返回一个翻转顺序后的数组。

  10. array_keys():返回数组中所有的键名。

在 PHP 中,虽然没有内置的数据结构(如堆、栈、队列等)类似于其他编程语言(如Python或Java)提供的标准库,但可以通过数组和一些自定义实现来模拟这些数据结构的行为。

1. 栈(Stack)

栈是一种后进先出(LIFO)的数据结构

2、 队列(Queue)

队列是一种先进先出(FIFO)的数据结构

  • 队列操作:使用 array_shiftarray_unshift,在数组的开头进行添加和移除,实现先进先出的数据结构。
  • 栈操作:使用 array_pusharray_pop,在数组的末尾进行添加和移除,实现后进先出的数据结构。
相关推荐
Book_熬夜!7 小时前
Python基础(九)——正则表达式
python·正则表达式·php
计算机学姐8 小时前
基于PHP的电脑线上销售系统
开发语言·vscode·后端·mysql·编辑器·php·phpstorm
BLEACH-heiqiyihu9 小时前
红帽9中nginx-源码编译php
运维·nginx·php
翔云API9 小时前
人证合一接口:智能化身份认证的最佳选择
大数据·开发语言·node.js·ocr·php
白总Server9 小时前
MongoDB解说
开发语言·数据库·后端·mongodb·golang·rust·php
fakaifa10 小时前
八戒农场小程序V2最新源码
小程序·uni-app·php·生活·开源软件
吱吱鼠叔11 小时前
MATLAB方程求解:1.线性方程组
开发语言·matlab·php
Messiah___12 小时前
【论文阅读】Slim Fly: A Cost Effective Low-Diameter Network Topology 一种经济高效的小直径网络拓扑
开发语言·php
项目題供诗14 小时前
尚品汇-秒杀商品存入缓存、Redis发布订阅实现状态位(五十一)
开发语言·php