我有一个数组
$a = array('a', 'b', 'c');
将其更改为
的最短和最佳方法是什么?$a = array('1a1', '1b1', '1c1');
答案 0 :(得分:7)
$a = array("1{$a[0]}1", "1{$a[1]}1", "1{$a[2]}1");
使用动态数量的值,您必须使用循环
foreach ($a as &$value) $value = "1{$value}1";
(我知道:省略大括号{}
通常不是“好风格”,但在这种简单的情况下,它没有任何问题。当然,如果你不这样做,你可以再次添加大括号对压实的形式感到舒服。)
或(使用PHP5.3)
$a = array_map(function ($value) { return "1{$value}1"; }, $a);
答案 1 :(得分:2)
最优化可能只是一个很好的循环
$cnt = count($a);
for($i = 0; $i < $cnt; $i++) {
$a[$i] = '1' . $a[$i] . '1';
}
甚至是lambda
$a = array_map(function($el) { return '1' . $el . '1'; }, $a);
答案 2 :(得分:2)
function add1s($val) {
return '1' . $val . '1';
}
$a = array_map("add1s", $a);
答案 3 :(得分:0)
使用循环或array_map。简单,干净,高效。
循环:
<?php
for($i = 0; $i < count($a); $i++) {
$a[$i] = '1'.$a[$i].'1';
}
var_dump($a);
?>
Array_map:
<?php
function sandwich($item)
{
return '1'.$item.'1';
};
$a = array('a', 'b', 'c');
$a = array_map("sandwich",$a); /* you can also use lambda functions for PHP >= 5.3.0
var_dump($a);
?>
答案 4 :(得分:0)
foreach($a as $key => $val) {
$a[$key] = '1' . $val . '1';
}
答案 5 :(得分:0)
$a = array('a', 'b', 'c');
$a = array_map(function ($x) { return ("1".$x."1"); }, $a);
print_r($a);