PHP 零基础入门笔记(12):数组 array

简介: PHP 零基础入门笔记(12):数组 array

数组 array

数组的概念

数据的组合,将一组数据存储到一个指定的容器中,用变量指向该容器。

可以通过变量一次性得到该容器中的所有数据


数组的定义

// 1、使用array关键字
$变量 = array(元素1, 元素2, ...);
// 2、使用中括号
$变量 = [元素1, 元素2, ...];
// 3、隐形定义数组
$变量[] = 值1; // 默认下标是数字,默认从0开始
$变量[下标] = 值; // 下标或者key,可以是数字或字符串
// 下标自动为前面最大+1

示例


// 方式一:
$arr = array('Tom', 'Jack', 'Steve');
// 方式二:
$arr = ['Tom', 'Jack', 'Steve'];
// 方式三:
$arr[] = 'Tom';
$arr[] = 'Jack';
$arr[] = 'Steve';
// 输出结果一样
var_dump($arr);
// array(3) {
//   [0]=> string(3) "Tom"
//   [1]=> string(4) "Jack"
//   [2]=> string(5) "Steve"
// }

PHP 数组特点

1、可以整数下标或者字符串下标


索引数组:数组下标为整数

关联数组:数组下标为字符串

混合数组:不同下标可以混合存在

2、数组元素的顺序以放入顺序为准,跟下标无关


3、数字下标的自增长特性


4、特殊值下标的自动转换


<?php
$arr[false] = 'Tom';
$arr[true] = 'Jack';
$arr[null] = 'Steve';
var_dump($arr);
// array(3) {
//   [0] => string(3) "Tom"
//   [1] => string(4) "Jack"
//   [""]=> string(5) "Steve"
// }

5、PHP 数组元素没有类型限制


6、PHP 数组元素没有长度限制


多维数组

多维数组:数组里的元素又是数组


1、二维数组: 数组中的所有元素都是一维数组


<?php
$arr = [
    [
        'name'=> 'Tom',
        'age'=> 23
    ],
    [
        'name'=> 'Jack',
        'age'=> 24
    ],
];
var_dump($arr);
// array(2) {
//   [0]=> array(2) {
//     ["name"] => string(3) "Tom"
//     ["age"]  =>  int(23)
//   }
//   [1]=> array(2) {
//     ["name"] => string(4) "Jack"
//     ["age"]  => int(24)
//   }
// }

2、多维数组:二维数组中的元素可以继续是数组


不建议超过三维以上的数组


3、异型数组(不规则数组)


数组的中的元素不规则,有普通基本变量也有数组


数组遍历

普通数组可以通过下标来访问

<?php
$arr = [
    [
        'name'=> 'Tom',
        'age' => 23
    ],
    [
        'name'=> 'Jack',
        'age' => 24
    ],
];
// 访问一维
var_dump($arr[0]);
// array(2) {
//   ["name"] => string(3) "Tom"
//   ["age"]  => int(23)
// }
// 访问二维
var_dump($arr[0]['name']);
// string(3) "Tom"

1、Foreach 语法

foreach($数组 as [$key =>] $value){
    // key下标 value值
}

示例


<?php
$arr = [
    [
        'name'=> 'Tom',
        'age' => 23
    ],
    [
        'name'=> 'Jack',
        'age' => 24
    ],
];
foreach($arr as $index => $item){
    echo $index, $item['name'], $item['age'] . PHP_EOL;
}
// 0Tom23
// 1Jack24

2、foreach 遍历原理


本质是数组内部有一个指针,默认指向数组元素的第一个元素

foreach 就是利用指针取获取数据,同时移动指针


foreach 会重置指针,让指针指向第一个元素

进入 foreach 循环,通过指针获取元素

进入循环体执行

重复此过程,直到取不到元素

3、for 循环遍历数组


获取数组长度 count()

要求数组元素下标有规律


<?php
$arr = ['Tom', 'Jack', 'Steve'];
for($i =0, $len =count($arr); $i < $len; $i ++){
    echo '[' . $i . '] ' . $arr[$i] . PHP_EOL;
}
// [0] Tom
// [1] Jack
// [2] Steve

4、while 循环


<?php
$arr = ['Tom', 'Jack', 'Steve'];
$i =0;
$len =count($arr);
while($i < $len){
    echo '[' . $i . '] ' . $arr[$i] . PHP_EOL;
    $i ++;
}
// [0] Tom
// [1] Jack
// [2] Steve

4、each (7 版本以后已弃用)



$arr = ['Tom', 'Jack', 'Steve'];
// 通过each移动数组指针下移
while($item = each($arr)){
    var_dump($item);
}
// array(4) {
//     [0]        =>  int(0)
//     [1]        =>  string(3) "Tom"
//     ["key"]    =>  int(0)
//     ["value"]  =>  string(3) "Tom"
//   }

5、list 按照下标取值


<?php
$arr = ['Tom', 'Jack', 'Steve'];
list($name1, $name2) = $arr;
var_dump($name1, $name2);
// string(3) "Tom"
// string(4) "Jack"

6、while + each + list 配合


<?php
$arr = ['Tom', 'Jack', 'Steve'];
// 通过each移动数组指针下移
while(list($key, $value) = each($arr)){
    echo '[' . $key . '] ' . $value . PHP_EOL;
}
// [0] Tom
// [1] Jack
// [2] Steve
相关文章
|
20天前
|
存储 数据处理 PHP
深入浅出PHP编程之数组操作技巧
【10月更文挑战第30天】在PHP编程的海洋里,数组是一艘承载着数据结构的小船,掌握其操控之道,能让开发者在编码的旅程中乘风破浪。本文将带你领略数组的强大功能,从基础使用到高级应用,一步步揭开数组操作的神秘面纱。准备好你的航海装备,让我们启航吧!
38 4
|
14天前
|
存储 缓存 搜索推荐
优化PHP数组性能
优化PHP数组性能
32 8
|
14天前
|
算法 搜索推荐 Java
05 一文解决PHP数组操作
路老师带你深入PHP世界,从数组的基础知识讲起,包括数组的创建、赋值、类型(数字索引数组与关联数组)、多维数组,以及常用数组函数如遍历、统计、查询、添加、删除重复元素和排序等。实例讲解,轻松上手。下期预告:PHP面向对象。
12 2
|
1月前
|
人工智能 前端开发 JavaScript
拿下奇怪的前端报错(一):报错信息是一个看不懂的数字数组Buffer(475) [Uint8Array],让AI大模型帮忙解析
本文介绍了前端开发中遇到的奇怪报错问题,特别是当错误信息不明确时的处理方法。作者分享了自己通过还原代码、试错等方式解决问题的经验,并以一个Vue3+TypeScript项目的构建失败为例,详细解析了如何从错误信息中定位问题,最终通过解读错误信息中的ASCII码找到了具体的错误文件。文章强调了基础知识的重要性,并鼓励读者遇到类似问题时不要慌张,耐心分析。
|
1月前
|
存储 Java
Java“(array) <X> Not Initialized” (数组未初始化)错误解决
在Java中,遇到“(array) &lt;X&gt; Not Initialized”(数组未初始化)错误时,表示数组变量已被声明但尚未初始化。解决方法是在使用数组之前,通过指定数组的大小和类型来初始化数组,例如:`int[] arr = new int[5];` 或 `String[] strArr = new String[10];`。
|
1月前
|
存储 JavaScript 前端开发
JavaScript Array(数组) 对象
JavaScript Array(数组) 对象
27 3
|
2月前
|
存储 PHP
PHP编程中的数组操作技巧
【9月更文挑战第28天】在PHP编程中,数组是一种基础且强大的数据结构,它可以存储多个值,并且允许我们使用键来访问这些值。本文将介绍一些实用的PHP数组操作技巧,包括创建数组、遍历数组、排序数组和合并数组等。通过掌握这些技巧,你将能够更高效地处理数据和解决实际问题。
|
1月前
|
数据采集 JavaScript 前端开发
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
|
6月前
|
Python
使用array()函数创建数组
使用array()函数创建数组。
133 3
|
2月前
|
Go
Golang语言之数组(array)快速入门篇
这篇文章是关于Go语言中数组的详细教程,包括数组的定义、遍历、注意事项、多维数组的使用以及相关练习题。
35 5
下一篇
无影云桌面