获取数组中除第一个元素之外的所有元素。?(php)
2022-08-30 14:43:00
有没有办法指定获取数组中除第一个元素之外的所有元素?我通常使用foreach()来循环我的数组。
说数组(1,2,3,4,5),我只想显示2,3,4,5,并跳过1。
有没有办法指定获取数组中除第一个元素之外的所有元素?我通常使用foreach()来循环我的数组。
说数组(1,2,3,4,5),我只想显示2,3,4,5,并跳过1。
$arr = array(1,2,3,4,5);
$all_but_the_first_element_array = array_slice($arr, 1);
有多种方法可以解决此问题。
第一种解决方案是使用标志布尔值来指示第一个元素,然后在您的前言
中继续
$firstElement = true;
foreach($array as $key => $val) {
if($firstElement) {
$firstElement = false;
} else {
echo "$key => $val\n";
}
}
如果您的元素是自然的数字索引,则不需要布尔标志,只需检查键是否为0即可。
foreach($array as $key => $val) {
if($key === 0) continue;
echo "$key => $val\n";
}
第二种方法是欺骗你的方式进入一个自然数字索引的数组,如果它还没有。我将使用array_keys()
来获取一个自然数字索引的键数组并循环它。
$keys = array_keys($array);
foreach($keys as $index => $key) {
if($index === 0) continue;
$val = $array[$key];
echo "$key => $val\n";
}
第三种方法是使用数组内部指针跳过第一个元素,然后使用 reset()、next()
、list()
和 each()
继续在循环中运行。性能和资源方面,这是最佳选择。不过,可维护性受到很大影响。
reset($array); // Reset pointer to 0
next($array); // Advance pointer to 1
while (list($key, $val) = each($array)) {
echo "$key => $val\n";
}
如果您不介意丢失数组的第一个元素,则可以array_shift()
它。
array_shift($array);
foreach($array as $key => $val) {
echo "$key => $val\n";
}
您还可以array_slice()
数组。我还使用 count()
以便能够将 preserve_keys
参数设置为 .true
$sliced = array_slice($array, 1, count($array)-1, true);
foreach($sliced as $key => $val) {
echo "$key => $val\n";
}