在我们关于 PHP 的系列文章的第二部分中,我们将深入研究数组的利用。
什么是数组?
数组是具有干系数字索引或位置的元素的凑集。 数组用于将多个值存储在单个变量中,使其更易于管理和操作。
PHP 中有两种类型的数组:索引数组和关联数组。

索引数组是个中索引为数字的数组,并在将元素添加到数组时自动天生。 这些数组便是我们在其他编程措辞中也称为数组的东西。 例如:
/ 纵然此数组包含以 1 开头的数字,第一个位置始终为 0。因此 $numbers[0] 将为 1,$numbers[5] 将为 6/$numeros = [1, 2, 3, 4, 5, 6];
另一方面,关联数组是那些索引是关联键的数组,不一定限于整数。 例如:
$diasDeLaSemana = [ 'L' => 'Lunes', 'M' => 'Martes', 'X' => 'Miércoles', 'J' => 'Jueves', 'V' => 'Viernes', 'S' => 'Sábado', 'D' => 'Domingo'];// 虽然我们在这里利用字符串作为键,但访问的办法是一样的。echo $diasDeLaSemana['X'];// > Miércoles
在上面的示例中,我们创建了一个包含星期几的数组,但我们没有利用整数作为键,而是利用它们的缩写。 这类似于 Java Map 或 Python Dictionary。
在 PHP 中显示数组一旦我们知道了如何创建数组,理解如何显示它们的内容就很主要了。
如果您考试测验过,就会创造无法回显数组,这是由于回显语句旨在吸收字符串。
echo $diasDeLaSemana;// > Warning: Array to string conversion in X.php on line Y
常日我们不想显示全体数组,只显示它的值,但是,有时我们可能须要显示数组以查看它包含的内容,由于 PHP 为我们供应了两个函数:print_r 和 var_dump。
print_r 函数以人类可读的形式显示数组的内容,而 var_dump 显示有关数组的详细信息,例如其类型和长度。 例如:
print_r($diasDeLaSemana);/Array( [L] => Lunes [M] => Martes [X] => Miércoles [J] => Jueves [V] => Viernes [S] => Sábado [D] => Domingo)/
正如我们所见,print_r 使我们能够快速查看数组,并以我们易于理解的办法格式化。
var_dump($diasDeLaSemana);/array(7) { ["L"]=> string(5) "Lunes" ["M"]=> string(6) "Martes" ["X"]=> string(10) "Miércoles" ["J"]=> string(6) "Jueves" ["V"]=> string(7) "Viernes" ["S"]=> string(7) "Sábado" ["D"]=> string(7) "Domingo"}/
就其本身而言,var_dump 为我们供应了数组的更详细视图,包括其每个索引中包含的数据类型。
主要提示:var_dump 支持任何类型的变量,因此它是一个非常有用的函数,用于识别变量的类型和内容。
在 PHP 中利用数组的函数PHP 供应了大量用于处理数组的函数。 一些最著名的是:
count():返回数组中元素的数量。array_keys():返回一个包含给天命组所有键的数组。array_values():返回一个包含给天命组所有值的数组。sort():按升序对数组的元素进行排序。rsort():按降序对数组的元素进行排序。例如:
echo count($diasDeLaSemana); // > 7print_r(array_keys($diasDeLaSemana)); /Array( [0] => L [1] => M [2] => X [3] => J [4] => V [5] => S [6] => D)/print_r(sort($diasDeLaSemana)); / 该数组已按其值的字母顺序排序。Array( [0] => Domingo [1] => Jueves [2] => Lunes [3] => Martes [4] => Miércoles [5] => Sábado [6] => Viernes)/
这统统都很好但是......我如何遍历我的数组?
这个问题有一个大略的答案:利用 for,就像我们在 Java 中所做的那样,现在,利用普通的 for 我们可以遍历索引数组。 对付关联数组,我们有更好的东西:foreach。
foreach 许可您以大略的办法遍历数组。 它类似于 for 和 while 循环,但专门设计用于处理数组。
foreach ($diasDeLaSemana as $clave => $valor) { echo $clave . ": " . $valor . PHP_EOL; }/ L: Lunes M: Martes X: Miércoles J: Jueves V: Viernes S: Sábado D: Domingo// 把稳:PHP_EOL(PHP END OF LINE) 在末端引入一个换行符/
在此示例中,foreach 循环遍历 $daysOfWeek 数组,并在每次迭代中将键的值分配给变量 $key,将元素的值分配给变量 $value。 然后,键和对应的值显示在屏幕上。
可能是我们不须要密钥的情形,在这种情形下,我们可以省略它:
foreach ($diasDeLaSemana as $valor) { echo $valor . PHP_EOL; }/ Lunes Martes Miércoles Jueves Viernes Sábado Domingo/
结束
同样,请记住,阅读以上所有内容不会直接让您成为数组的至高无上的邪术师,现在轮到您练习本文中看到的所有内容,探求更多与数组一起利用的函数(有),找到更多循环遍历数组(有数组),并手动修正所有内容,直到您弄清楚为止。