PHP:对所有数组元素执行操作,但第一个和最后一个

时间:2012-07-19 14:14:20

标签: php arrays slice

我知道我可以使用array_slice()来创建一个除了第一个&最后一个元素,对每个元素执行操作,然后重新处理原始的第一个和最后一个值。这似乎有点矫枉过正了。是否有更简洁的方法来执行操作(在这种情况下,只是在数组值上附加和前置字符串)在所有内部数组元素上而不是在末端?

3 个答案:

答案 0 :(得分:3)

我可能会遗漏一些东西,但不会这样做吗?

for ($i = 1; $i < count($arr) - 1; $i++) {
   // Do stuff to $arr[$i], like prefixing and suffixing
   $arr[$i] = 'prefix ' . $arr[$i] . ' suffix';
}

答案 1 :(得分:0)

有很多方法。一个是:

for($i = 1; $i < count($arr)-1; $i++) {
    // process $arr[$i];
}

如果你的数组是关联的,并且已经以某种有意义的方式排序,你可以这样做:

$keys = array_keys($arr);
for($i = 1; $i < count($arr)-1; $i++) {
    // process $arr[$keys[$i]];
}

答案 2 :(得分:0)

这个怎么样:

reset($array);
$firstKey = key($array);
end($array);
$lastKey = key($array);
foreach($array as $key => $value) {
    if ($key === $firstKey || $key === $lastKey) {
         continue;
    }
    do_your_stuff($key, $value);
 }