MBL*_*MBL 68 php arrays explode prefix implode
我有一个PHP数组,我想在前面添加一个减号( - ).我认为通过使用爆炸和内爆它是可能的,但我的PHP知识是不可能实际做到的.任何帮助,将不胜感激.
基本上我想从这个:
$array = [1, 2, 3, 4, 5];
Run Code Online (Sandbox Code Playgroud)
对此:
$array = [-1, -2, -3, -4, -5];
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Dáv*_*áth 124
一种优雅的数组值前缀方式(PHP 5.3+):
$prefixed_array = preg_filter('/^/', 'prefix_', $array);
Run Code Online (Sandbox Code Playgroud)
此外,这比a快三倍以上foreach
.
Roh*_*pra 93
简单
foreach ($array as &$value) {
$value *= (-1);
}
unset($value);
Run Code Online (Sandbox Code Playgroud)
除非数组是一个字符串:
foreach ($array as &$value) {
$value = '-' . $value;
}
unset($value);
Run Code Online (Sandbox Code Playgroud)
Pet*_*tai 66
在这种情况下,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;
Run Code Online (Sandbox Code Playgroud)
如果php 5.3对你来说有点太花哨,只需使用createfunction()
:
// If you don't have PHP 5.3
array_walk($array,create_function('&$it','$it *= -1;')); //or $it = '-'.$it;
Run Code Online (Sandbox Code Playgroud)
JRL*_*JRL 20
这样的事情会做:
array_map(function($val) { return -$val;} , $array)
Run Code Online (Sandbox Code Playgroud)
您可以用字符串替换“无”。因此,要为字符串数组(而不是最初发布的数字)添加前缀:
$prefixed_array = substr_replace($array, 'your prefix here', 0, 0);
Run Code Online (Sandbox Code Playgroud)
这意味着,对于 $array 的每个元素,取偏移量 0 处的(零长度)字符串,长度为 0 并将其替换为前缀。
$array = [1, 2, 3, 4, 5];
$array=explode(",", ("-".implode(",-", $array)));
//now the $array is your required array
Run Code Online (Sandbox Code Playgroud)
我以前也有过同样的情况。
function addPrefixToArray(array $array, string $prefix)
{
return array_map(function ($arrayValues) use ($prefix) {
return $prefix . $arrayValues;
}, $array);
}
Run Code Online (Sandbox Code Playgroud)
function addSuffixToArray(array $array, string $suffix)
{
return array_map(function ($arrayValues) use ($suffix) {
return $arrayValues . $suffix;
}, $array);
}
Run Code Online (Sandbox Code Playgroud)
现在测试部分:
$array = [1, 2, 3, 4, 5];
Run Code Online (Sandbox Code Playgroud)
print_r(addPrefixToArray($array, 'prefix'));
Array ([0] => prefix1 [1] => prefix2 [2] => prefix3 [3] => prefix4 [4] => prefix5)
Run Code Online (Sandbox Code Playgroud)
print_r(addSuffixToArray($array, 'suffix'));
Array ([0] => 1suffix [1] => 2suffix [2] => 3suffix [3] => 4suffix [4] => 5suffix)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
67510 次 |
最近记录: |