PHP数组

PHP 数组是一种用于存储多个值的复合数据类型,它可以是整数索引的(索引数组)或字符串索引的(关联数组)。PHP 提供了丰富的函数来操作数组,包括创建、访问、搜索、排序、合并、分割等。以下是一个 PHP 数组的详细使用教程:

一、创建数组

1. 直接赋值
复制代码
$array = array('apple', 'banana', 'cherry'); // 索引数组
$fruits = array('apple' => 'red', 'banana' => 'yellow', 'cherry' => 'red'); // 关联数组

注意:在 PHP 5.4.0 及以上版本中,可以使用短数组语法 [] 来代替 array()。

2. 使用 array() 函数(已在上文示例中展示)

二、访问数组元素

1. 通过键访问元素

对于关联数组,可以通过键名来访问元素:

复制代码
echo $fruits['apple']; // 输出 red

对于索引数组,可以通过索引来访问元素(索引从 0 开始):

复制代码
echo $array[0]; // 输出 apple
2. 循环遍历数组

使用 foreach 循环遍历数组中的元素:

复制代码
foreach ($fruits as $key => $value) {
    echo "Key: $key, Value: $value\n";
}

三、数组操作函数

1. 获取数组元素数量
复制代码
$count = count($fruits);
2. 增加数组元素
  • 使用 array_push() 或 [] 语法在数组末尾添加元素。

  • 使用键值对方式添加关联数组元素。

    array_push(fruits, 'orange'); fruits[] = 'orange'; // 等同于上一行
    $colors['apple'] = 'red'; // 关联数组

3. 弹出数组末尾元素
复制代码
$lastFruit = array_pop($fruits);
4. 移除数组开头的元素
复制代码
$firstFruit = array_shift($fruits);
5. 在数组开头添加一个或多个元素
复制代码
array_unshift($fruits, 'pear');
6. 合并两个数组
复制代码
$combinedArray = array_merge($fruits, $colors);

四、数组搜索、筛选、过滤、转换

1. 检查数组中是否存在某个值
复制代码
if (in_array('red', $colors)) {
    echo 'Red 存在于这个数组';
}
2. 搜索数组中的值并返回键名
复制代码
$key = array_search('banana', $fruits);
echo $key; // 输出 1
3. 过滤数组

使用 array_filter() 函数过滤数组中的元素:

复制代码
$data = [
    ['id' => 1, 'name' => 'Alice', 'age' => 25],
    ['id' => 2, 'name' => 'Bob', 'age' => 30],
    ['id' => 3, 'name' => 'Charlie', 'age' => 28]
];

$filteredData = array_filter($data, function($item) {
    return $item['age'] >= 28;
});

echo json_encode($filteredData);
4. 转换数组
  • 使用 array_map() 对数组中的每个元素应用回调函数。
  • 使用 array_values() 和 array_keys() 提取数组的值和键。

五、数组排序

PHP 提供了多种数组排序函数,包括:

  • sort() 和 rsort():对索引数组进行升序和降序排序。
  • asort() 和 arsort():对关联数组进行值的升序和降序排序,保留键名。
  • ksort() 和 krsort():对关联数组的键进行升序和降序排序。
  • array_multisort():对多个数组或多维数组进行排序。

六、其他常用函数

  • array_unique():移除数组中的重复值。
  • array_reverse():返回顺序与原数组相反的数组。
  • array_rand():从数组中随机取出一个或多个元素。
  • shuffle():将数组中的元素顺序打乱。

红客社区:

客户端下载 - 红客网络编程与渗透技术

原文链接: PHP数组

相关推荐
Escalating_xu4 小时前
【Linux 网络编程】DNS 与 ICMP:从域名解析到 ping、traceroute,把“网络通不通”问清楚
linux·网络·php
niucloud-admin6 小时前
NIUCLOUD PHP SAAS上门家政使用文档--服务订单:订单列表
开发语言·php
一枕槐安4876 小时前
大模型限流、重试、超时处理:API 调用健壮性方案
linux·服务器·php·大模型api·指数退避·限流控制·超时预算
李纲明7 小时前
WordPress 白屏或提示「出现了严重错误」:先开 WP_DEBUG 抓致命错误,再二分插件与主题
运维·php·debug·wordpress·白屏·插件冲突·devdiy
其实防守也摸鱼9 小时前
Chrome 扩展安全攻防实录:从攻击面到防御实践
开发语言·前端·网络·chrome·安全·web安全·php
niucloud-admin12 小时前
NIUCLOUD PHP SAAS上门家政使用文档--服务订单:评价列表
开发语言·php
2501_9160074712 小时前
Windows OpenSSL 生成 iOS 证书,制作 p12 与描述文件,KXBuild 签名实操
windows·vscode·ios·objective-c·个人开发·swift·敏捷流程
临沂码农王老七13 小时前
Composer一劳永逸的“绿色安装法”
php·composer
aixingpan13 小时前
aixingpan.cn API开发文档:api_docs_bichart_common2接口指南
前端·php
我要见SA姐115 小时前
Chrome 内存泄漏诊断指南:从现象定位到根因排查
ide·vscode·python·自动化·编辑器