array_values , PHP数组简介

100人浏览   2024-11-24 10:32:24


在我们关于 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); 
// > 7

print_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
*/

结束

同样,请记住,阅读以上所有内容不会直接让您成为数组的至高无上的魔法师,现在轮到您练习本文中看到的所有内容,寻找更多与数组一起使用的函数(有),找到更多循环遍历数组(有数组),并手动修改所有内容,直到您弄清楚为止。

相关推荐