在本文中,我们将介绍 PHP 中数组的 30 种方法。它们是有用的方法,可以帮助我们以有组织且简洁的方式与数组进行交互。帮助我们以简单实用的方式解决问题。从最简单的方法,到大众不太熟悉的方法。
array_map
在 PHP 中, array_map() 函数用于将函数应用于数组的每个元素,并返回一个包含结果的新数组。当您需要根据某些特定逻辑转换数组的元素时,它会很有用。
在上面的示例中,函数 adicionaDois() 被定义为每个数组元素加 2。 array_map() 函数用于将此函数应用于原始数组的每个元素,并返回一个包含结果的新数组。
array_filter
我们在 Javascript 中经常使用的方法在 PHP 中也可用。 array_filter() 函数用于根据自定义回调函数过滤数组的元素。该函数有两个主要参数:第一个是要过滤的数组,第二个是回调函数,用于确定每个元素是否应包含在过滤结果中。
如果某个元素应保留在过滤数组中,则回调函数应返回 true ;如果应删除元素,则回调函数应返回 false 。回调函数将每个数组元素作为参数,可以定义为匿名函数或用户定义函数的名称。
array_reduce
在 PHP 中, array_reduce() 函数用于通过对数组的每个元素应用回调函数来将数组的元素减少为单个值。此回调函数采用两个参数:累加器(存储归约的部分结果)和正在迭代的当前值。
foreach
我的宝贝。老板。 foreach 是 PHP 中的控制结构,允许迭代数组中的元素(或实现 Traversable 接口的对象)。它通过提供一个方便的循环来单独处理每个项目,从而简化了遍历数据结构元素的过程。
for
又老又好。在 PHP 中, for 是一种流控制结构,允许您重复运行一段代码指定的次数。当您需要运行某个任务固定次数时,它非常有用。
array_merge
array_merge 是 PHP 中的一个函数,用于将两个或多个数组组合成一个数组。它接受一个或多个参数,每个参数都是一个要合并的数组。结果是一个包含输入数组中所有元素的新数组。
合并关联数组:
合并三个数组
在上面的示例中,我们将三个数组 $array1 、 $array2 和 $array3 合并为一个数组 $result 。结果包含三个数组的所有元素。请记住, array_merge 函数创建一个包含输入数组元素的新数组。如果不同数组中存在相等的关联键,则最后一个数组的值将替换具有相同键的前面数组的值。
array_slice
在 PHP 中, array_slice() 函数用于提取数组的一部分,返回包含所选元素的新数组。它允许您指定起点(起始索引)和长度(要返回的元素数)以获取原始数组的切片。
在上面的示例中, $slice 将包含从索引 1(值 2)到长度 3 的数组元素 $array 。
array_splice
array_splice 是一个 PHP 函数,允许您修改数组、删除或替换现有元素和添加新元素。当你需要灵活操作数组时它很有用。
在上面的示例中,我们从数组的位置 2 中删除 2 个元素,并将它们替换为 ['a', 'b', 'c']。
count
这件事根本就不需要解释。你肯定已经知道了。如果不是 PHP,另一种语言。在 PHP 中, count() 函数用于计算数组或 Countable 对象中元素的数量。该函数返回数据结构中包含的元素数量。
sizeof
在 PHP 中, sizeof() (或 count() )运算符用于确定数组中元素的数量或对象中属性的数量。它返回一个表示数据结构大小的整数值。
那么与 count() 有什么区别呢?
就功能而言, sizeof() 和 count() 在 PHP 中本质上是等效的。这两个函数都返回数组中的元素数量或对象中的属性数量。总的来说,它们在大多数情况下可以互换使用。但是, sizeof() 和 count() 之间存在一些细微的差异:
- 函数名称: sizeof() 是PHP中较旧的函数,而 count() 是后来引入的,并且变得更流行。因此, count() 通常是首选,因为它使用更广泛并且更容易记住。
- 失败返回: sizeof() 将始终返回非负值,即使参数不是有效的数组或对象。另一方面,如果参数不是有效的数组或对象, count() 将返回 0 。
- 内部实现: sizeof() 被实现为 count() 的别名(昵称)。也就是说, sizeof() 在内部被视为 count() 。这意味着除了名称之外,这两个函数之间没有真正的区别。
因此, sizeof() 和 count() 之间的主要区别在于函数名称和无效情况的处理。一般来说,建议使用 count() ,因为它很受欢迎且意图清晰。
in_array
in_array 是一个 PHP 函数,用于检查数组中是否存在给定值。如果值在数组中,则返回 true ,否则返回 false 。
在上面的示例中,函数 in_array 用于检查数组 $frutas 中是否存在字符串 'banana' 。由于字符串位于数组中,因此代码将打印“水果存在于数组中”。
array_key_exists
array_key_exists 用于检查数组中是否存在特定键。如果键存在,则返回布尔值 true ,否则返回 false 。
在上面的示例中,函数 array_key_exists 用于检查数组 $frutas 中是否存在键“apple”。由于该键存在,因此代码会显示消息“水果数组中存在‘apple’键”。
array_search
array_search 是一个 PHP 函数,允许您在数组中搜索特定值,如果找到该值则返回相应的键。当您需要确定数组中是否存在某个值,如果存在,则获取其在数组中的位置时,它非常有用。
array_reverse
array_reverse() 函数用于反转数组中元素的顺序。它使用原始数组的元素以相反的顺序创建一个新数组。该函数不会修改原始数组。
以下是 array_reverse() 函数的基本语法:
array_reverse() 函数采用两个参数:要反转的数组和一个名为 $preserve_keys 的可选参数。 $preserve_keys 参数确定是否应将原始数组中的键保留在新的倒排数组中。默认情况下,此参数设置为 false ,这意味着键将被重新排序。
在此示例中,通过将 $preserve_keys 设置为 true ,原始数组中的键将保留在新的倒排数组中。因此,倒排数组的键将是原始数组对应的索引。现在,每个倒排元素都有与其在原始数组中相应索引关联的键。
array_sum
在PHP中, array_sum() 函数用于计算数组中所有值的总和。该函数循环遍历给定的数组并将找到的每个数值相加。
在上面的这个例子中,数组 $numbers 包含数值[2,4,6,8,10]。 array_sum() 函数将该数组中的所有值相加并返回结果,即 30。然后使用 echo 将该值打印到控制台。
array_unique
array_unique 是 PHP 中的一个函数,允许您从数组中删除重复元素。它返回一个新数组,其中保留了唯一元素并重新索引了关联键。
在上面的示例中,重复的元素“apple”和“orange”已被删除,从而产生一个具有唯一元素的新数组。
array_values
在 PHP 中, array_values() 用于从关联数组中提取所有值并将它们返回到新数组中,而忽略原始键。当您只想使用数组值而不担心相应的键时,这会很有用。
array_values() 函数还可以用在矩阵(多维数组)上,提取所有值并以新的一维数组返回它们。
在上面的例子中,我们有一个数字数组。当使用 array_values() 时,所有数组值都会被提取并存储在 $valores 数组中。 print_r() 函数用于显示这个新数组的内容。
请注意, array_values() 将多维数组转换为一维数组,并保留值的顺序。原始数组索引被丢弃,值从零开始按升序重新索引
array_keys
array_keys() 用于返回数组中的所有键。它将您想要获取键的数组作为参数,并返回一个包含原始数组中所有键的新数组。
在上面的示例中,数组 $frutas 包含四个元素。使用 array_keys($frutas) 函数时,将返回一个包含 $frutas 数组键的新数组。
使用关联数组
在本例中,数组 $dados 具有关联键。 array_keys($dados) 函数将返回一个新数组,其中包含 $dados 数组中的键。
array_column
array_column 是一个 PHP 函数,允许您从多维数组或对象数组中提取特定列。当您需要获取数据集中特定列的所有值时,此函数非常有用。
在上面的示例中,我们使用 array_column 从多维数组 $data 中提取“name”列。名称存储在 $names 数组中。
array_flip
array_flip 用于在数组中交换键与值以及值与键。这意味着键成为值,值成为键。
array_intersect
array_intersect 函数用于返回一个数组,其中包含作为参数传递的所有数组中存在的值。该函数使用严格相等比较(===)来比较数组的值。
在上面的示例中,值 2 和 4 是所有三个数组中都存在的唯一值。因此,它们作为结果被返回。
array_diff
array_diff 是 PHP 中的一个函数,用于比较两个或多个数组并返回它们之间的差异。它返回一个新数组,其中包含第一个数组中其他数组中不存在的值。
在此示例中, array_diff 将 $array1 与 $array2 和 $array3 进行比较,返回 $array1 中存在的值b4> 但不存在于其他数组中。在这种情况下,返回值 1 和 2 ,因为它们不存在于 $array2 或 $array3 中。
array_walk
array_walk 是一个 PHP 函数,允许您遍历数组并对数组的每个元素应用自定义函数。当您想要对所有数组元素执行操作而无需手动编写循环时,此函数非常有用。
回调函数必须是带有两个参数的函数或方法:当前元素值和相应的键。它可以对元素执行任何类型的所需操作。
在上面的示例中,我们使用 array_walk_recursive 函数而不是 array_walk 。 array_walk_recursive 函数用于遍历多维数组,为每个元素调用回调函数。我们可以看到,矩阵的每个元素都被乘以 2。
array_multisort
array_multisort (爸爸的宝贝,cuty cuty -)是一个 PHP 函数,允许您根据其中一个或多个的值同时对多个数组或对象数组进行排序。当您需要对主数组进行排序并同时重新组织关联数组,维护所有数组中对应元素之间的关系时,此函数特别有用。
我们可以使用 SORT_ASC 进行升序,使用 SORT_DESC 进行降序。
现在让我们看一个非常有用的例子。看:
请参阅上面的代码,但按降序排列:
sort
现在我们来谈谈古老的 sort()。 sort() 函数用于按升序对数组的元素进行排序(排序)。它重新排列数组元素,使它们根据其值按升序排列。 sort() 函数修改作为参数传递的数组本身,而不是创建新的排序数组。
rsort
rsort() 函数用于对数组进行逆序排序,即降序排序。它对数组元素重新排序,使最大值位于数组的开头,最小值位于数组的末尾。
asort
与 sort() 函数类似,在 PHP 中, asort() 函数用于按升序对数组进行排序,保留索引和值之间的关联。它根据匹配值对数组元素重新排序并维护关联的索引。
arsort
arsort() 函数用于按值的降序对关联数组进行排序,从而保留键和值之间的关联。它对数组重新排序,使具有最高值的元素位于顶部。
ksort
ksort() 函数用于根据数组的键按索引对数组进行升序排序。这意味着该函数根据键按字母顺序(对于字符串)或数字顺序(对于数字)重新排列数组。
krsort
在 PHP 中, krsort() 函数用于按数组的值降序对数组进行排序,保持键和值之间的关联不变。 krsort() 中的“k”表示“键”,因为该函数会考虑数组的键来执行排序。
KRSort 与 KSort 之间的区别:
ksort() 函数与 krsort() 函数类似,两者都用于按数组键对数组进行排序。主要区别在于 ksort() 按升序对数组进行排序,而 krsort() 按降序对数组进行排序。