PHPの数値配列があり、接頭辞としてマイナス(-)を付けたいと思います。explodeとimplodeを使用することで可能になると思いますが、phpに関する私の知識では実際にそれを行うことはできません。どんな助けでもいただければ幸いです。
基本的に私はこれから行きたいです:
$array = [1, 2, 3, 4, 5];
これに:
$array = [-1, -2, -3, -4, -5];
何か案は?
単純:
foreach ($array as &$value) {
$value *= (-1);
}
unset($value);
配列が文字列でない限り:
foreach ($array as &$value) {
$value = '-' . $value;
}
unset($value);
この場合、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;
次のようなことができます:
array_map(function($val) { return -$val;} , $array)