84

PHPの数値配列があり、接頭辞としてマイナス(-)を付けたいと思います。explodeとimplodeを使用することで可能になると思いますが、phpに関する私の知識では実際にそれを行うことはできません。どんな助けでもいただければ幸いです。

基本的に私はこれから行きたいです:

$array = [1, 2, 3, 4, 5];

これに:

$array = [-1, -2, -3, -4, -5];

何か案は?

4

7 に答える 7

107

単純:

foreach ($array as &$value) {
   $value *= (-1);
}
unset($value);

配列が文字列でない限り:

foreach ($array as &$value) {
    $value = '-' . $value;
}
unset($value);
于 2011-10-01T01:53:27.927 に答える
73

この場合、Rohit の回答がおそらく最良ですが、PHP 配列関数は、より複雑な状況で非常に役立ちます。

を使用array_walk()して、既存の配列を変更する配列の各要素に対して関数を実行できます。array_map()はほぼ同じことを行いますが、既存の配列を変更するのではなく、新しい配列を返します。同じ配列を使い続けたいように見えるため、 を使用する必要がありますarray_walk()

を使用して配列の要素を直接操作するには、配列array_walk()の項目を参照 ( function(&$item)) で渡します。

PHP 5.3以降、array_walk で無名関数を使用できます。

// PHP 5.3 and beyond!
array_walk($array, function(&$item) { $item *= -1; }); // or $item = '-'.$item;

実施例

PHP 5.3 があなたにとって少し派手すぎる場合は、以下を使用してくださいcreatefunction()

// If you don't have PHP 5.3
array_walk($array,create_function('&$it','$it *= -1;')); //or $it = '-'.$it;

実施例

于 2011-10-01T04:00:24.337 に答える
25

次のようなことができます:

array_map(function($val) { return -$val;} , $array)
于 2011-10-01T01:55:10.590 に答える