后缀/前缀数组值是否有可靠的PHP单行程序?

后缀/前缀数组值是否有可靠的PHP单行程序?,php,arrays,loops,Php,Arrays,Loops,我需要为数组值添加后缀,实际上是一个标记CSS,因此我需要为一个数组添加后缀:hover,另一个数组添加后缀:focus $elements = array('.one','.two','.three'); 所需的新阵列 $helements = array('.one:hover','.two:hover','.three:hover'); $felements = array('.one:focus','.two:focus','.three:focus'); 我知道我可以用一个循环来实

我需要为数组值添加后缀,实际上是一个标记CSS,因此我需要为一个数组添加后缀
:hover
,另一个数组添加后缀
:focus

$elements = array('.one','.two','.three');
所需的新阵列

$helements = array('.one:hover','.two:hover','.three:hover');
$felements = array('.one:focus','.two:focus','.three:focus');

我知道我可以用一个循环来实现,但问题是,有没有一个快速的单行程序来实现这一点?

您可以改变数组本身(就像我的解决方案)或创建一个新的数组,如。你的选择

$newelements = array_map(function($x){ return $x . ':hover'; }, $elements);
只需将
$item
作为引用传递,即可直接更改原始数组

$array = ["test1", "test2", "test3"];
array_walk($array,function(&$item) {$item .= ':hover';});
结果是:

var_dump($array);

array(3) {
  [0]=>
  string(11) "test1:hover"
  [1]=>
  string(11) "test2:hover"
  [2]=>
  string(11) "test3:hover"
}

数组中的每个元素的值总是相同的?@Napolux,是的,它将是:hover或:focus-sulfy您可能可以使用
array\u-map
甚至
array\u-walk
来实现这一点。您为什么要寻找“快速单行线”?你认为它比普通的旧循环工作得更好或更快吗?你可以使用正则表达式。喜欢