PHP基础语法(五)

一、定义语法

1、索引数组

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

3、关联数组

4、多维数组

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

PHP数组特点:

1、可以整数下标或者字符串下标
      若数组下标均为整数,则称为索引数组。
      若数组下标均为字符串,则称为关联数组
      混合下标的话称为混合数组
2、数组元素的顺序以放入顺序为准,与下标无关
3、数字下标的增长特性:从0开始自动增长,若中间手动加入较大的下标,则后面则会从当前最大下标+1增长。

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

<?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 循环

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

关联数组的遍历

$person = ["name" => "John", "age" => 30, "city" => "New York"];

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

输出:

name: John
age: 30
city: New York

索引数组的遍历

$colors = ["Red", "Green", "Blue"];

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

输出:

Index 0: Red
Index 1: Green
Index 2: Blue

三、数组相关函数

a、数组排序函数

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

$arr = [3, 1, 2];
sort($arr);
print_r($arr);  // 输出:[1, 2, 3]

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

$arr = [3, 1, 2];
rsort($arr);
print_r($arr);  // 输出:[3, 2, 1]

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

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

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

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

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

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

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

$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_shift 和 array_unshift,在数组的开头进行添加和移除,实现先进先出的数据结构。
  • 栈操作:使用 array_push 和 array_pop,在数组的末尾进行添加和移除,实现后进先出的数据结构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值