前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP数组完整操作方法大全

PHP数组完整操作方法大全

原创
作者头像
岳泽以
发布2024-05-28 18:35:28
880
发布2024-05-28 18:35:28

创建数组

1.直接赋值

代码语言:javascript
复制
$array = array('apple', 'banana', 'cherry');

2.使用array()函数

代码语言:javascript
复制
$fruits = array('apple' => 'red', 'banana' => 'yellow', 'cherry' => 'red');

访问数组元素

1.通过键访问元素

代码语言:javascript
复制
$fruits['apple'];

2.循环遍历数组中的元素:

代码语言:javascript
复制
foreach ($fruits as $key => $value) { 
    /* 处理每个元素$key为键名 $value为键值 */ 
}

数组操作函数

1.获取数组元素数量

代码语言:javascript
复制
$count = count($fruits); 

2.增加数组元素

代码语言:javascript
复制
array_push($fruits, 'orange');

//方括号法
$fruits[] = 'orange';

//键值对方式添加关联数组元素
$colors['apple'] = 'red'; 

3.弹出数组末尾元素

代码语言:javascript
复制
$lastFruit = array_pop($fruits);

4.移除数组开头的元素

代码语言:javascript
复制
$firstFruit = array_shift($fruits);

5.在数组开头添加一个或多个元素

代码语言:javascript
复制
array_unshift($fruits, 'pear');

6.合并两个数组

代码语言:javascript
复制
$combinedArray = array_merge($fruits, $colors);

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

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

代码语言:javascript
复制
if (in_array('red', $colors)) {
    echo 'Red 存在于这个数组';
}

2.循环遍历数组获取其他元素

代码语言:javascript
复制
$data = [
    [2, "北京市", 1],
    [24, "天津市", 2]
];

foreach ($data as $item) {
    if ($item[1] === "天津市") {
        $result = $item[2];
        break;
    }
}

echo $result;  // 输出 2

3.在数组中搜索给定的值,并返回对应的键。

代码语言:javascript
复制
$fruits = array('apple', 'banana', 'cherry');
$key = array_search('banana', $fruits); 

echo $key // 输出1
  
//查找子数组返还下标
$data = [
    [2, "北京市", 1],
    [24, "天津市", 2]
];

$index = array_search(["", "天津市", ""], array_column($data, 1));
if ($index !== false) {
    $result = $data[$index][0];
}

echo $result;  // 输出 24

4.过滤数组中的元素,并返回满足指定条件的元素。

代码语言:javascript
复制
// 示例关联数组
$data = array(
    array('id' => 1, 'name' => 'Alice', 'age' => 25),
    array('id' => 2, 'name' => 'Bob', 'age' => 30),
    array('id' => 3, 'name' => 'Charlie', 'age' => 28)
);

// 使用array_filter()函数选择年龄大于等于 28 的项
$filteredData = array_filter($data, function($item) {
    return $item['age'] >= 28;
});

echo json_encode($filteredData);

输出值如下:

代码语言:javascript
复制
{
  "1": {
    "id": 2,
    "name": "Bob",
    "age": 30
  },
  "2": {
    "id": 3,
    "name": "Charlie",
    "age": 28
  }
}

5.对数组中的每个元素应用回调函数,并返回一个新数组,该数组包含回调函数的返回值。

代码语言:javascript
复制
$numbers = array(1, 2, 3, 4, 5);
$squared = array_map(function($value) {
    return $value * $value;
}, $numbers); 
// $squared 的值为 [1, 4, 9, 16, 25]

//或以上述4中筛选后的数据为例,提取其中的姓名
$filteredNames = array_map(function ($item) {
  return $item['name'];
}, $filteredData);

echo json_encode($filteredNames);
//输出:{"1": "Bob", "2": "Charlie"}

6.提取数组中的键或值,并返回新数组

代码语言:javascript
复制
$fruits = array('apple' => 'red', 'banana' => 'yellow', 'cherry' => 'red');

$keys = array_keys($fruits); 
// $keys 的值为 ['apple', 'banana', 'cherry']

$values = array_values($fruits); 
// $values 的值为 ['red', 'yellow', 'red']

7.将数组元素归约为单个值。通过使用回调函数逐个处理数组元素,最终将它们减少为单个值。

代码语言:javascript
复制
$numbers = array(1, 2, 3, 4, 5);
$product = array_reduce($numbers, function($carry, $item) {
    return $carry * $item;
}, 1); 
// $product 的值为 120 (1*2*3*4*5)

数组排序

1.sort()rsort()

代码语言:javascript
复制
// sort() 对数组进行升序排序
$numbers = array(4, 2, 8, 1, 5);
sort($numbers);
// $numbers 现在为 [1, 2, 4, 5, 8]

// rsort() 对数组进行降序排序
rsort($numbers);
// $numbers 现在为 [8, 5, 4, 2, 1]

2.asort()arsort()

代码语言:javascript
复制
$colors = array('apple' => 'red', 'banana' => 'yellow', 'cherry' => 'red');
// asort() 按值对关联数组进行升序排序并保留键值关联
asort($colors);
// $colors 现在为 ['banana' => 'yellow', 'apple' => 'red', 'cherry' => 'red']

// arsort() 按值对关联数组进行降序排序并保留键值关联
arsort($colors);
// $colors 现在为 ['banana' => 'yellow', 'cherry' => 'red', 'apple' => 'red']

3.ksort()krsort()

代码语言:javascript
复制
// 创建一个关联数组
$ages = array('Tom' => 30, 'Alice' => 25, 'Bob' => 35);

// ksort() 按键对关联数组进行升序排序并保持键值关联
ksort($ages);
// $ages 现在为 ['Alice' => 25, 'Bob' => 35, 'Tom' => 30]

// krsort() 按键对关联数组进行降序排序并保持键值关联
krsort($ages);
// $ages 现在为 ['Tom' => 30, 'Bob' => 35, 'Alice' => 25]

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建数组
  • 访问数组元素
  • 数组操作函数
  • 数组搜索筛选、过滤、转换
  • 数组排序
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档