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);
配列値に接頭辞を付けるエレガントな方法(PHP 5.3以降):
$prefixed_array = preg_filter('/^/', 'prefix_', $array);
さらに、これはforeach
よりも3倍以上高速です。
この場合、 Rohitの答え がおそらく最良ですが、 PHP配列関数 はより複雑な状況では非常に便利です。
array_walk()
を使用して、既存の配列を変更する配列の各要素に対して関数を実行できます。 array_map()
はほぼ同じことを行いますが、既存の配列を変更する代わりに新しい配列を返します。同じ配列を使い続けたいように見えるため、使用する必要があります- array_walk()
。
array_walk()
を使用して配列の要素を直接操作するには、参照(function(&$item)
)によって配列の項目を渡します。
Php5.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)
$array = [1, 2, 3, 4, 5];
$array=explode(",", ("-".implode(",-", $array)));
//now the $array is your required array
「nothing」を文字列で置き換えることができます。したがって、文字列の配列のプレフィックスを付けるには(最初に投稿された数字ではありません):
$prefixed_array = substr_replace($array, 'your prefix here', 0, 0);
つまり、$ the_arrayの各要素について、オフセット0、長さ0の(長さゼロの)文字列を取得し、プレフィックスに置き換えます。
以前にも同じ状況でした。
_function addPrefixToArray(array $array, string $prefix)
{
return array_map(function ($arrayValues) use ($prefix) {
return $prefix . $arrayValues;
}, $array);
}
_
_function addSuffixToArray(array $array, string $suffix)
{
return array_map(function ($arrayValues) use ($suffix) {
return $arrayValues . $suffix;
}, $array);
}
_
テスト部分は次のとおりです。
_$array = [1, 2, 3, 4, 5];
_
print_r(addPrefixToArray($array, 'prefix'));
_Array ([0] => prefix1 [1] => prefix2 [2] => prefix3 [3] => prefix4 [4] => prefix5)
_
print_r(addSuffixToArray($array, 'suffix'));
_Array ([0] => 1suffix [1] => 2suffix [2] => 3suffix [3] => 4suffix [4] => 5suffix)
_