如何将此关联数组中的每个值替换为自定义值


How to replace every value with a customized one inside this associative array?

我是PHP新手。对不起,如果这听起来很简单。

我有这个PHP关联数组:

$X = array(
    'Model1' => '6',
    'Model2' => '5',
    'Model3' => '1'
);

我想把它转换成这样:

$Y = array(
    'Model1' => 'prefix_Model1_postfix',
    'Model2' => 'prefix_Model2_postfix',
    'Model3' => 'prefix_Model3_postfix'
);

转换后的每条记录中的值都被替换为前缀,然后是键,然后是后缀。如何做到这一点?非常感谢。foreach是一个好的开始吗?

是的,您可以轻松地使用foreach:

$arr = array("Model1" => 6, "Model2" => 5, "Model3" => 1);
$prefix = "prefix_";
$postfix = "_postfix";
foreach($arr as $key => $val){
$arr[$key] = $prefix.$key.$postfix;
}
print_r($arr);

也可以使用array_walk:

array_walk($x, function($val,$key) use(&$x) { 
    $x[$key] = 'prefix_' . $key . '_postfix';
});

使用内置函数和闭包的另一种方法:

<?php
$data = array(
  'Model1' => '6',
  'Model2' => '5',
  'Model3' => '1',
);
$data = array_map(function($data){
  return "prefix_Model{$data}_postfix";
}, $data);

var_dump($data);
?>