📜  索引数组和关联数组的区别(1)

📅  最后修改于: 2023-12-03 15:27:28.243000             🧑  作者: Mango

索引数组和关联数组的区别

索引数组

索引数组是指数组的每个元素都有一个数字索引,从0开始递增。它们是最常见的数组类型。例如:

$fruits = array('apple', 'banana', 'orange', 'grape');
echo $fruits[0]; // 输出: apple
echo $fruits[2]; // 输出: orange

关联数组

关联数组是指数组的每个元素都有一个字符串索引,对应一个键值对。例如:

$person = array('name' => 'John', 'age' => 30, 'city' => 'New York');
echo $person['name']; // 输出: John
echo $person['city']; // 输出: New York

区别

  • 索引数组的索引是递增的数字,而关联数组的索引是字符串。
  • 索引数组的元素顺序很重要,因为它们是按顺序存储的。关联数组则没有顺序的概念。
  • 可以通过数组函数对索引数组和关联数组进行不同的操作。

举个例子,比较两个数组之间的差异:

$old_array = array('apple', 'banana', 'orange', 'grape');
$new_array = array('banana', 'orange', 'watermelon', 'grape');

$deleted = array_diff($old_array, $new_array); // 输出: Array ( [0] => apple )
$added = array_diff($new_array, $old_array); // 输出: Array ( [2] => watermelon )

可以看到,对于索引数组,array_diff函数计算差异的结果是一个新的索引数组。而对于关联数组,结果则是一个新的关联数组。

因此,在编程时需要根据具体的需求来选择合适的数组类型。