1

array_slice()最初と最後の要素を除くすべての新しい配列を作成し、それぞれに対して操作を実行してから、元の最初と最後の値を元に戻すために使用できることを知っています。それはやり過ぎのように思えますが。端ではなく、すべての内部配列要素に対して操作を実行するよりクリーンな方法はありますか (この場合、配列値に文字列を追加して追加するだけです)。

4

3 に答える 3

3

私は何かが欠けているかもしれませんが、これでうまくいきませんか?

for ($i = 1; $i < count($arr) - 1; $i++) {
   // Do stuff to $arr[$i], like prefixing and suffixing
   $arr[$i] = 'prefix ' . $arr[$i] . ' suffix';
}
于 2012-07-19T14:16:26.357 に答える
0

多くの方法があります。1つは次のとおりです。

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]];
}
于 2012-07-19T14:21:11.053 に答える
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);
 }
于 2012-07-19T14:21:27.217 に答える