在我们关于 PHP 的系列文章的第二部分中,我们将深入研究数组的使用。
什么是数组?
数组是具有相关数字索引或位置的元素的集合。 数组用于将多个值存储在单个变量中,使其更易于管理和操作。
PHP 中有两种类型的数组:索引数组和关联数组。
索引数组是其中索引为数字的数组,并在将元素添加到数组时自动生成。 这些数组就是我们在其他编程语言中也称为数组的东西。 例如:
/* *即使此数组包含以 1 开头的数字,第一个位置始终为 0。 因此 $numbers 将为 1,$numbers 将为 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 ( => Lunes => Martes => Miércoles => Jueves => Viernes => Sábado => 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); // > 7 print_r(array_keys($diasDeLaSemana)); /* Array ( => L => M => X => J => V => S => D ) */ print_r(sort($diasDeLaSemana)); /* * 该数组已按其值的字母顺序排序。 Array ( => Domingo => Jueves => Lunes => Martes => Miércoles => Sábado => 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 */
结束
同样,请记住,阅读以上所有内容不会直接让您成为数组的至高无上的魔法师,现在轮到您练习本文中看到的所有内容,寻找更多与数组一起使用的函数(有),找到更多循环遍历数组(有数组),并手动修改所有内容,直到您弄清楚为止。
本文【php数组分为哪两种】由作者: 递归 提供,本站不拥有所有权,只提供储存服务,如有侵权,联系删除!
本文链接:https://www.cuoshuo.com/blog/4242.html