📅  最后修改于: 2023-12-03 14:45:26.038000             🧑  作者: Mango
array_reduce()
是PHP中一个很强大的函数,可以对数组中的每个元素进行操作,返回一个累加或组合后的值,而当前项的索引在默认情况下是不可用的。那么如何获取当前项的索引呢?下面我们将介绍两种方法。
可以通过使用foreach
循环来迭代数组并获取索引和值,再将它们合并到数组中。然后,array_reduce()
函数执行时,该数组将包含第一个元素的索引和值,而在每次迭代期间,新的项的索引和值将被添加到数组中。
$array = array('a', 'b', 'c');
$result = array_reduce($array, function($carry, $item) {
$index = count($carry);
$carry [] = array('index' => $index, 'value' => $item);
return $carry;
}, array());
在这个例子中,我们将每个元素及其索引作为一个键值对添加到包含它们的数组中。array_reduce()
函数使用闭包函数来操作数组,并将结果合并到初始数组 $carry
中。在闭包函数中,我们使用PHP的count()
函数来获取索引的值,以便在数组中创建数据项。
通过使用array_keys()
和 array_values()
函数,可以分别将数组的键和值获取到两个不同的数组中。这样,在每次迭代中,就可以使用当前元素的数组值来获取索引。
$array = array('a', 'b', 'c');
$keys = array_keys($array);
$values = array_values($array);
$result = array_reduce($keys, function($carry, $item) use($values) {
$index = $values[$item];
$carry [] = array('index' => $item, 'value' => $index);
return $carry;
}, array());
在这个例子中,我们使用array_keys()
函数和array_values()
函数将数组的键和值放入两个不同的数组中。array_reduce()
函数使用闭包函数来操作键并将结果合并到数组 $carry
中。在闭包函数中,我们使用 PHP 的 use
关键字来访问 $values
数组,以便使用当前键值来获取当前元素的数组值,并将结果添加到 $carry
数组中。
以上两种方法都可以用来获取当前项的索引,具体使用哪种取决于具体情况。