当前位置: 首页 > news >正文

走近php的数组:数组的定义与数组函数

数组是一种数据结构,它由一组元素组成,这些元素可以是相同类型或不同类型。数组是在程序运行时动态创建的,可以根据需要增加或删除元素,因此它们是非常灵活和实用的数据结构。

在大多数编程语言中,数组都有一个索引,用于标识数组中的每个元素。索引可以是整数或字符串类型。例如,一个整数索引数组可以用于存储一组数字,而一个字符串索引数组可以用于存储一组名称或标签。

数组的一个重要特性是能够通过索引快速访问数组中的任何元素,这使得数组成为编程中非常有用的工具。可以使用数组来存储和操作各种数据,例如数字、字符串、对象等等。

php数组的定义

PHP是一种服务器端脚本语言,具有内置的数据类型和数据结构。其中最常用的数据类型之一是数组,它可以存储多个值,并使用索引或关联键来访问这些值。

PHP的数组有三种类型:数字索引数组、关联数组和多维数组。

1.数字索引数组:最常用的一种数组类型,其元素使用数字索引来访问,索引从0开始递增,可以包含任何类型的数据,如整数、字符串、对象等。可以使用array()函数或方括号[]创建一个数字索引数组。例如:

//使用array()函数创建数字索引组
$my_array = array("apple", "banana", "orange");
//使用方括号[]创建数字索引数组
$my_array = ["apple", "banana", "orange"];

2.关联数组:使用自定义的字符串键来访问其元素,每个键都与一个值相关联。关联数组常用于存储具有名称的数据,如数据库查询结果或表单数据。可以使用array()函数或方括号[]创建一个关联数组。例如:

//使用array()函数创建关联数组
$person = array("name" => "John", "age" => 30, "gender" => "male");
//使用方括号[]创建关联数组
$person = ["name" => "John", "age" => 30, "gender" => "male"];

3.多维数组:是指包含一个或多个子数组的数组。可以使用数组嵌套的方式创建多维数组,其中每个子数组可以是数字索引数组或关联数组。例如:

//创建一个包含两个子数组的多维数组
$my_array = [    ["apple", "banana", "orange"],["name" => "John", "age" => 30, "gender" => "male"]
];

PHP的数组函数非常丰富,可以用于对数组进行排序、搜索、迭代等操作。例如,使用sort()函数可以对数组进行升序排序:

$my_array = [3, 1, 2];
sort($my_array);
print_r($my_array); //输出:Array ( [0] => 1 [1] => 2 [2] => 3 )

php的常用数组函数

1.array_push()

array_push() 函数将一个或多个元素添加到数组末尾。它的语法如下:

array_push(array, value1, value2, ...)

其中,array 是要添加元素的数组,value1, value2, ... 是要添加到数组末尾的一个或多个元素。下面是一个例子:

$fruits = array("apple", "banana");
array_push($fruits, "orange", "pear");
print_r($fruits);

这段代码会输出:

Array
([0] => apple[1] => banana[2] => orange[3] => pear
)

2.array_pop()

array_pop() 函数从数组末尾弹出一个元素。它的语法如下:

array_pop(array)

其中,array 是要弹出元素的数组。下面是一个例子:

$fruits = array("apple", "banana", "orange", "pear");
$last_fruit = array_pop($fruits);
echo $last_fruit;

这段代码会输出:

pear

3.array_shift()

array_shift() 函数从数组开头移除一个元素。它的语法如下:

array_shift(array)

其中,array 是要移除元素的数组。下面是一个例子:

$fruits = array("apple", "banana", "orange", "pear");
$first_fruit = array_shift($fruits);
echo $first_fruit;

这段代码会输出:

apple

4.array_unshift()

array_unshift() 函数在数组开头添加一个或多个元素。它的语法如下:

array_unshift(array, value1, value2, ...)

其中,array 是要添加元素的数组,value1, value2, ... 是要添加到数组开头的一个或多个元素。下面是一个例子:

$fruits = array("apple", "banana");
array_unshift($fruits, "orange", "pear");
print_r($fruits);

这段代码会输出:

Array
([0] => orange[1] => pear[2] => apple[3] => banana
)

5.array_slice()

array_slice() 函数从数组中返回指定长度的一段元素。它的语法如下:

array_slice(array, start, length)

其中,array 是要返回元素的数组,start 是起始位置,length 是要返回的元素数量。下面是一个例子:

$fruits = array("apple", "banana", "orange", "pear");
$subset = array_slice($fruits, 1, 2);
print_r($subset);

这段代码会输出:

Array
([0] => banana[1] => orange
)

6.array_key_exists(): 检查数组中是否存在指定的键名,返回布尔值。

$arr = array('a' => 1, 'b' => 2, 'c' => 3);
if (array_key_exists('a', $arr)) {echo "The 'a' key exists in the array.";
}

7.array_unique():移除数组中的重复值。

$array = array(1, 2, 2, 3, 4, 4, 5); 
$unique_array = array_unique($array); // [1, 2, 3, 4, 5]

8.array_combine(): 将一个数组的值作为键名,另一个数组的值作为相应的值,返回一个新的关联数组。

$keys = array('a', 'b', 'c');
$values = array(1, 2, 3);
$arr = array_combine($keys, $values);
print_r($arr); // 输出:Array ( [a] => 1 [b] => 2 [c] => 3 )

9.array_walk(): 对数组中的每个元素应用用户自定义函数。

function myfunction($value, $key)
{echo "The key '$key' has the value '$value'.<br>";
}
$arr = array('a' => 1, 'b' => 2, 'c' => 3);
array_walk($arr, 'myfunction');

10.array_intersect(): 返回两个或多个数组中共同存在的元素,返回一个新的数组。

$arr1 = array('a' => 1, 'b' => 2, 'c' => 3);
$arr2 = array('b' => 2, 'c' => 4, 'd' => 5);
$arr = array_intersect($arr1, $arr2);
print_r($arr); // 输出:Array ( [b] => 2 [c] => 3 )

11.array_search(): 在数组中搜索给定的值,并返回对应的键名。如果没有找到,返回false。

$fruits = array("apple", "banana", "orange");
$key = array_search("banana", $fruits); // $key = 1

12.array_reverse(): 将数组中的元素顺序翻转,并返回一个新的数组。

$numbers = array(1, 2, 3, 4, 5);
$reversed = array_reverse($numbers); // $reversed = [5, 4, 3, 2, 1]

13.array_diff(): 比较两个或多个数组的差异,返回在第一个数组中但不在其他数组中的值。

$array1 = array("a", "b", "c", "d");
$array2 = array("a", "b", "e", "f");
$diff = array_diff($array1, $array2); // $diff = ["c", "d"]

14.array_intersect(): 比较两个或多个数组的交集,返回同时在所有数组中出现的值。

$array1 = array("a", "b", "c", "d");
$array2 = array("a", "b", "e", "f");
$intersect = array_intersect($array1, $array2); // $intersect = ["a", "b"]

15.array_merge(): 将多个数组合并成一个新数组。

$array1 = array("a", "b", "c");
$array2 = array("d", "e", "f");
$merged = array_merge($array1, $array2); // $merged = ["a", "b", "c", "d", "e", "f"]
http://www.lryc.cn/news/19673.html

相关文章:

  • Docker 应用实践-仓库篇
  • python+django篮球NBA周边商城vue
  • 抽象类与接口的区别
  • 1904. 你完成的完整对局数
  • Vue3:自定义指令以及简单的后台管理权限封装
  • 剑指 Offer 12. 矩阵中的路径
  • springboot+jersey+tomcat实现跨域方式上传文件到服务器
  • 【微信小程序】-- 常用视图容器类组件介绍 -- view、scroll-view和swiper(六)
  • 猜数字游戏——C++
  • 整数对最小和
  • 2023-2-22 -javaagent
  • JavaScript BOM操作
  • 【机器学习 | 强基计划】开山篇 | 机器学习介绍及其类别和概念阐述
  • 华为OD机试真题Java实现【合规数组】真题+解题思路+代码(20222023)
  • BoostSearcher搜索引擎项目
  • 【模拟集成电路】频率综合器(Frequency Synthesizer,FS)设计
  • 实例8:机器人的空间描述和变换仿真
  • 网络 导航
  • Web Spider Ast-Hook 浏览器内存漫游-数据检索
  • 计算机网络笔记、面试八股(二)——HTTP协议
  • docker快速上手使用
  • <c++> 类的构造函数与类的析构函数
  • 华为OD机试真题Java实现【玩牌高手】真题+解题思路+代码(20222023)
  • Hive Sql整体优化思路
  • 【华为OD机试模拟题】用 C++ 实现 - 数组的中心位置(2023.Q1)
  • 取指定数值的地址 (int 转 void *)
  • C#的多线程、线程池和Task
  • Day20【元宇宙的实践构想06】—— 元宇宙与Web3.0
  • 极限熵和冗余度
  • 女生学习大数据专业未来前景怎么样