PHP数组

一、定义数组

1.索引数组:

索引数组是最基本的数组类型,使用数字作为键(索引)来访问数组元素。可以使用以下两种方式定义索引数组:

$array1 = array(1, 2, 3, 4, 5);
var_dump($array1);
// 方法二:使用简化的方括号语法(PHP 5.4+)
$array2 = [1, 2, 3, 4, 5];
var_dump($array2);

在这里插入图片描述

在上述示例中, a r r a y 1 和 array1和 array1array2都是包含了五个整数元素的索引数组。

2.关联数组:

关联数组使用字符串键来访问数组元素,每个元素都由键值对(key-value pair)组成。可以使用以下两种方式定义关联数组:

// 方法一:使用array()函数
$array1 = array('name' => 'John', 'age' => 30, 'city' => 'New York');

// 方法二:使用简化的方括号语法(PHP 5.4+)
$array2 = ['name' => 'John', 'age' => 30, 'city' => 'New York'];

在上述示例中, a r r a y 1 和 array1和 array1array2都是包含了三个键值对的关联数组。

3.多维数组:

PHP还支持多维数组,即数组中的元素也可以是数组。可以使用以下方式定义多维数组:

 $array = array(
    array(1, 2, 3),
    array('a', 'b', 'c'),
    array(true, false, true)
);

在上述示例中,$array是一个包含了三个子数组的多维数组。

可以使用索引或关联数组的方式访问数组元素。例如,对于索引数组,可以使用索引值来访问元素:

echo $array1[0];  // 输出:1

对于关联数组,可以使用键来访问元素:

echo $array2['name'];  // 输出:John

以上是PHP中定义数组的基本方法和一些示例。数组是PHP中非常重要的数据结构,它提供了强大的功能,可以方便地处理和操作多个值。

二、遍历数组

在PHP中,遍历数组是一种常见的操作,用于访问数组中的每个元素。PHP提供了多种方式来遍历数组,下面介绍几种常用的方法:

1.for循环遍历:

使用for循环可以遍历索引数组。通过使用数组的count()函数可以获取数组的长度,然后使用循环变量来访问数组的每个元素。

$array = [1, 2, 3, 4, 5];
$length = count($array);

for ($i = 0; $i < $length; $i++) {
    echo $array[$i] . " ";
}

上述代码将输出:1 2 3 4 5。

2.while循环遍历:

使用while循环可以遍历索引数组。通过使用数组的reset()和each()函数可以重置数组的指针并获取当前元素,然后使用循环迭代指针来访问数组的每个元素。

$array = [1, 2, 3, 4, 5];
reset($array);

while (list(, $value) = each($array)) {
    echo $value . " ";
}
上述代码将输出:1 2 3 4 5

这些是PHP中常用的遍历数组的方法。根据具体的需求和数组类型,选择适合的遍历方式可以更方便地操作数组中的元素。

3.foreach循环遍历:

使用foreach循环可以遍历索引数组和关联数组。它会自动迭代数组中的每个元素,并将其赋值给一个临时变量,然后执行指定的代码块。

$array = [1, 2, 3, 4, 5];
foreach ($array as $value) {
    echo $value . " ";
}

上述代码将输出:1 2 3 4 5。

对于关联数组,可以使用键值对的方式遍历:

$array = ['name' => 'John', 'age' => 30, 'city' => 'New York'];

foreach ($array as $key => $value) {
    echo $key . ": " . $value . " ";
}

上述代码将输出:name: John age: 30 city: New York。

三、遍历数组

在PHP中,有几个预定义的特殊数组,它们提供了有关脚本执行环境和其他有用信息的访问方式。以下是一些常见的预定义数组:

1._GET:

_GET是一个关联数组,包含通过GET方法传递给当前脚本的所有参数和值。GET方法通过URL的查询字符串传递参数。

// URL: example.com?name=John&age=30
echo $_GET['name'];  // 输出:John
echo $_GET['age'];   // 输出:30

2._POST:

_POST是一个关联数组,包含通过POST方法传递给当前脚本的所有参数和值。POST方法通过请求的正文传递参数,通常用于提交表单数据。

// 表单:<form method="post" action="process.php">...</form>
echo $_POST['username'];  // 输出表单中名为"username"的输入值
echo $_POST['password'];  // 输出表单中名为"password"的输入值

3._REQUEST:

_REQUEST是一个关联数组,包含通过GET、POST和COOKIE方法传递给当前脚本的所有参数和值。它合并了ET、_POST和$_COOKIE数组的内容。

echo $_REQUEST['name'];     // 获取GET或POST参数中名为"name"的值
echo $_REQUEST['language']; // 获取GET或POST参数中名为"language"的值

4._SESSION:

_SESSION是一个关联数组,用于在不同页面之间存储和访问会话数据。它可以在用户访问网站时跨多个页面保持数据的持久性。

// 在使用session之前,需要先调用session_start()函数
session_start();
// 设置session值
$_SESSION['username'] = 'John';
// 获取session值
echo $_SESSION['username'];  // 输出:John

5._COOKIE:

_COOKIE是一个关联数组,包含通过HTTP Cookie传递给当前脚本的所有cookie值。

echo $_COOKIE['username'];  // 输出名为"username"的cookie值
echo $_COOKIE['language'];  // 输出名为"language"的cookie值

6._SERVER:

_SERVER是一个包含了服务器和执行环境信息的关联数组。它提供了有关当前脚本运行的服务器和请求的各种信息,如请求的方法、URL、主机名、用户代理等。

echo $_SERVER['REQUEST_METHOD'];   // 输出当前请求的方法(GET、POST等)
echo $_SERVER['SERVER_NAME'];      // 输出当前服务器的主机名
echo $_SERVER['HTTP_USER_AGENT'];  // 输出当前用户代理(浏览器信息)

7._FILES:

_FILES:_FILES是一个关联数组,用于处理通过HTTP POST方法上传的文件。它包含了上传文件的相关信息,如文件名、临时文件路径、文件类型等。

echo $_FILES['file']['name'];     // 输出上传文件的原始文件名
echo $_FILES['file']['tmp_name']; // 输出上传文件的临时文件路径
echo $_FILES['file']['type'];     // 输出上传文件的类型

8._ENV

_ENV是一个包含了环境变量的关联数组。它提供了访问服务器环境变量的方式,如操作系统信息、路径设置等。

echo $_ENV['OS'];       // 输出操作系统的名称
echo $_ENV['PATH'];     // 输出环境变量中的路径设置

9.GLOBALS:

GLOBALS:GLOBALS是一个包含了当前脚本中全局变量的关联数组。它可以用于在函数或方法中访问全局变量。

$globalVar = 'Hello';
function testFunction() {
    echo $GLOBALS['globalVar'];  // 输出全局变量$globalVar的值
}
testFunction();  // 输出:Hello

四、数组的一些函数

1.count()

count():用于计算数组中元素的数量。
$numbers = [1, 2, 3, 4, 5];
$count = count($numbers); // 输出 5

2.array_push()

array_push():向数组末尾添加一个或多个元素。
$fruits = ['apple', 'banana'];
array_push($fruits, 'orange', 'grape');
// $fruits 现在包含 ['apple', 'banana', 'orange', 'grape']

3.array_pop()

array_pop():从数组末尾删除并返回最后一个元素。

$fruits = ['apple', 'banana', 'orange'];
$lastFruit = array_pop($fruits); 
// $lastFruit 等于 'orange',$fruits 现在包含 ['apple', 'banana']

4.array_shift()

array_shift():从数组开头删除并返回第一个元素。

$fruits = ['apple', 'banana', 'orange'];
$firstFruit = array_shift($fruits); // $firstFruit 等于 'apple',$fruits 现在包含 ['banana', 'orange']

5.array_unshift()

array_unshift():在数组开头插入一个或多个元素。

$fruits = ['banana', 'orange'];
array_unshift($fruits, 'apple', 'grape');
// $fruits 现在包含 ['apple', 'grape', 'banana', 'orange']

6.array_merge()

array_merge():将一个或多个数组合并为一个数组。

$fruits = ['apple', 'banana'];
$moreFruits = ['orange', 'grape'];
$allFruits = array_merge($fruits, $moreFruits);
// $allFruits 包含 ['apple', 'banana', 'orange', 'grape']

7.array_slice()

array_slice():从数组中返回指定范围的元素。

在这里插入代码片
$numbers = [1, 2, 3, 4, 5];
$sliced = array_slice($numbers, 1, 3);
// $sliced 包含 [2, 3, 4]

8.array_search()

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


$fruits = ['apple', 'banana', 'orange'];
$key = array_search('banana', $fruits); // $key 等于 1

9.array_key_exists()

array_key_exists():检查数组中是否存在指定的键名。

$fruits = ['apple' => 'red', 'banana' => 'yellow'];
$exists = array_key_exists('apple', $fruits); // 返回 true

10.array_values()

array_values():返回数组中所有的值,组成一个新的索引数组。

$fruits = ['apple' => 'red', 'banana' => 'yellow'];
$values = array_values($fruits);
// $values 包含 ['red', 'yellow']

11.array_keys()

array_keys():返回数组中所有的键名,组成一个新的索引数组。


$fruits = ['apple' => 'red', 'banana' => 'yellow'];
$keys = array_keys($fruits);
// $keys 包含 ['apple', 'banana']

12.array_reverse()

array_reverse():将数组中的元素顺序反转。

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

13.array_unique()

array_unique():移除数组中重复的值,并返回新的数组。

$numbers = [1, 2, 2, 3, 3, 4, 5];
$unique = array_unique($numbers);
// $unique 包含 [1, 2, 3, 4, 5]

14.array_combine()

array_combine():将一个数组的值作为键名,另一个数组的值作为对应的值,创建一个新的数组。


$keys = ['apple', 'banana', 'orange'];
$values = ['red', 'yellow', 'orange'];
$combined = array_combine($keys, $values);
// $combined 包含 ['apple' => 'red', 'banana' => 'yellow', 'orange' => 'orange']

15.in_array()

in_array():检查一个值是否存在于数组中。


$fruits = ['apple', 'banana', 'orange'];
$exists = in_array('banana', $fruits); // 返回 true
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值