PHP 零基础入门笔记(13):数组相关函数

简介: PHP 零基础入门笔记(13):数组相关函数

数组相关函数

自定义数组打印函数,便于查看



function print_array($array){
    foreach($array as $key => $value){
        echo "$key => $value\n";
    }
}

排序函数

按照 ASCII 码排序


sort 对 array 本身按照值(value)升序排序。(下标重排)


sort(array &$array, int $flags = SORT_REGULAR): bool
// eg:
$arr = ['Tom', 'Jack', 'Steve'];
sort($arr);
print_array($arr);
// 0 => Jack
// 1 => Steve
// 2 => Tom

rsort 对 array 本身按照值(value)降序排序。


rsort(array &$array, int $flags = SORT_REGULAR): bool
// eg:
$arr = ['Tom', 'Jack', 'Steve'];
rsort($arr);
print_array($arr);
// 0 => Tom
// 1 => Steve
// 2 => Jack

asort 对 array 自身按照升序进行排序(下标保留)


asort(array &$array, int $flags = SORT_REGULAR): bool
// eg:
$arr = ['Tom', 'Jack', 'Steve'];
asort($arr);
print_array($arr);
// 1 => Jack
// 2 => Steve
// 0 => Tom

arsort 对 array 本身按照降序排序


arsort(array &$array, int $flags = SORT_REGULAR): bool
// eg:
$arr = ['Tom', 'Jack', 'Steve'];
arsort($arr);
print_array($arr);
// 0 => Tom
// 2 => Steve
// 1 => Jack

ksort 对 array 本身进行按键(key)升序排序。


ksort(array &$array, int $flags = SORT_REGULAR): bool
// eg:
$arr = ['Tom', 'Jack', 'Steve'];
ksort($arr);
print_array($arr);
// 0 => Tom
// 1 => Jack
// 2 => Steve

krsort 对 array 本身按照键(key)降序排序。


krsort(array &$array, int $flags = SORT_REGULAR): bool
// eg:
$arr = ['Tom', 'Jack', 'Steve'];
krsort($arr);
print_array($arr);
// 2 => Steve
// 1 => Jack
// 0 => Tom

shuffle 随机打乱


shuffle(array &$array): bool
// eg:
$arr = ['Tom', 'Jack', 'Steve'];
shuffle($arr);
print_array($arr);
// 0 => Jack
// 1 => Steve
// 2 => Tom

指针函数

reset 将 array 的内部指针倒回到第一个单元并返回第一个数组单元的值。


reset(array|object &$array): mixed

end 将 array 的内部指针移动到最后一个单元并返回其值。


end(array|object &$array): mixed

next 将数组中的内部指针向前移动一位


next(array|object &$array): mixed

prev 将数组的内部指针倒回一位


prev(array|object &$array): mixed

current 返回数组中的当前值


current(array|object $array): mixed

key 返回数组中当前单元的键名。


key(array|object $array): int|string|null

注意:next 和 prev 移动指针,可能移出数组,只能通过 end 或者 reset 重置指针


示例


$arr = [1, 3, 5, 7, 9];
echo next($arr);
echo next($arr);
echo prev($arr);
echo current($arr);
echo key($arr);
echo reset($arr);
echo end($arr);
// 3533119

其他函数

count 统计数组、Countable 对象中所有元素的数量


count(Countable|array $value, int $mode = COUNT_NORMAL): int
// eg:
$arr = [1, 2, 3, 4, 5];
echo count($arr);
// 5

array_push 将 array 当成一个栈,并将传入的变量压入 array 的末尾。


array_push(array &$array, mixed $value1, mixed $... = ?): int
// 和如下效果相同:
$array[] = $var;

array_pop 弹出并返回 array 最后一个元素的值


array_pop(array &$array): mixed

array_shift 将 array 的第一个单元移出并作为结果返回


array_shift(array &$array): mixed

array_unshift 在数组开头插入一个或多个单元


array_unshift(array &$array, mixed ...$values): int

数据结构


栈 压栈,FILO先进后出

队列 排队,FIFO 先进先出

实现栈:


前面 array_unshift/array_shift

后面 array_push/array_pop

<?php
$arr = [];
// 入栈
array_push($arr, 1);
array_push($arr, 2);
array_push($arr, 3);
// 出栈
echo array_pop($arr), array_pop($arr), array_pop($arr);
// 321

实现队列:


后进前出 array_push/array_shift

前进后出 array_unshift/array_pop

<?php
$arr = [];
// 入队
array_push($arr, 1);
array_push($arr, 2);
array_push($arr, 3);
// 出队
echo array_shift($arr), array_shift($arr), array_shift($arr);
// 123

array_reverse 返回一个单元为相反顺序的新数组


array_reverse(array $array, bool $preserve_keys = false): array
// eg
$arr = [1, 2, 3, 4, 5];
print_array(array_reverse($arr));
// 0 => 5
// 1 => 4
// 2 => 3
// 3 => 2
// 4 => 1

in_array 检查数组中是否存在某个值


in_array(mixed $needle, array $haystack, bool $strict = false): bool
// eg
$arr = [1, 2, 3, 4, 5];
var_dump(in_array(5, $arr));
// bool(true)

array_keys 返回数组中部分的或所有的键名


array_keys(array $array): array
array_keys(array $array, mixed $search_value, bool $strict = false): array
// eg
$arr = ['Tom', 'Jack', 'Steve'];
echo json_encode(array_keys($arr));
// [0,1,2]

array_values 返回 input 数组中所有的值并给其建立数字索引。


array_values(array $array): array
// eg
$arr = ['Tom', 'Jack', 'Steve'];
echo json_encode(array_values($arr));
// ["Tom","Jack","Steve"]
相关文章
|
3天前
|
存储 数据处理 PHP
深入浅出PHP编程之数组操作技巧
【10月更文挑战第30天】在PHP编程的海洋里,数组是一艘承载着数据结构的小船,掌握其操控之道,能让开发者在编码的旅程中乘风破浪。本文将带你领略数组的强大功能,从基础使用到高级应用,一步步揭开数组操作的神秘面纱。准备好你的航海装备,让我们启航吧!
18 4
|
2月前
|
PHP
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
本文介绍了解决PHP常见问题的步骤,包括定位和创建`php.ini`文件,以及解决`mb_strlen()`函数未定义和DLL模块加载错误的具体方法。
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
|
2月前
|
存储 API PHP
php学习笔记-php数组的创建和使用,数组常用函数-day03
关于PHP数组的创建、使用以及常用函数的详细学习笔记。
php学习笔记-php数组的创建和使用,数组常用函数-day03
|
1月前
|
Unix PHP 数据库
PHP日期和时间Date()函数获取当前时间
通过灵活运用 `date()`函数及其丰富的格式选项,PHP开发者可以轻松地在应用程序中处理和展示日期及时间信息。无论是需要精确到秒的完整时间戳,还是仅仅展示日期或时间的某一部分,`date()`函数都能胜任。理解并熟练应用这些格式化技巧,对于提升代码的可读性和维护性至关重要。
33 1
|
2月前
|
存储 PHP
PHP编程中的数组操作技巧
【9月更文挑战第28天】在PHP编程中,数组是一种基础且强大的数据结构,它可以存储多个值,并且允许我们使用键来访问这些值。本文将介绍一些实用的PHP数组操作技巧,包括创建数组、遍历数组、排序数组和合并数组等。通过掌握这些技巧,你将能够更高效地处理数据和解决实际问题。
|
2月前
|
存储 数据处理 PHP
深入理解PHP中的数组
【9月更文挑战第3天】在PHP编程中,数组扮演着不可或缺的角色。它们不仅提供了一种灵活的方式来存储和操作数据,还极大地丰富了开发者处理复杂信息结构的能力。本文将带你深入了解PHP数组的基础知识、高级特性以及如何高效地利用数组来简化代码逻辑,提升开发效率。
|
2月前
|
XML SQL PHP
php学习笔记-php字符串及字符串常用函数总结-day04
本文总结了PHP中字符串的三种定义方式和常用字符串处理函数,包括字符串的修剪、转换、长度计算、子串操作、比较、连接、分割及替换等操作。
|
2月前
|
设计模式 存储 算法
PHP中的设计模式:策略模式的深入解析与应用在软件开发的浩瀚海洋中,PHP以其独特的魅力和强大的功能吸引了无数开发者。作为一门历史悠久且广泛应用的编程语言,PHP不仅拥有丰富的内置函数和扩展库,还支持面向对象编程(OOP),为开发者提供了灵活而强大的工具集。在PHP的众多特性中,设计模式的应用尤为引人注目,它们如同精雕细琢的宝石,镶嵌在代码的肌理之中,让程序更加优雅、高效且易于维护。今天,我们就来深入探讨PHP中使用频率颇高的一种设计模式——策略模式。
本文旨在深入探讨PHP中的策略模式,从定义到实现,再到应用场景,全面剖析其在PHP编程中的应用价值。策略模式作为一种行为型设计模式,允许在运行时根据不同情况选择不同的算法或行为,极大地提高了代码的灵活性和可维护性。通过实例分析,本文将展示如何在PHP项目中有效利用策略模式来解决实际问题,并提升代码质量。