更改阵列的最短路径

时间:2011-07-27 08:53:13

标签: php

我有一个数组

$a = array('a', 'b', 'c');

将其更改为

的最短和最佳方法是什么?
$a = array('1a1', '1b1', '1c1');

6 个答案:

答案 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);