将php数组中的键[0]更改为[Name]



我有数组:

[0] => Height: 3/16 
[1] => Color: Standard Red 
[2] => Material: Die-cut, pressure-sensitive paper 

我想删除这些数字键(0,1,2(,并将它们替换为数组元素值中两个点之前的字符串。因此,最终结果将是:

[Height] => 3/16 
[Color] => Standard Red 
[Material] => Die-cut, pressure-sensitive paper

我试着用array_values函数来解决这个问题,但我没有成功,有人能帮我吗?

您可以使用array_reduce来处理您的数组。在函数中,我们使用preg_match将字符串拆分为其组成部分(请注意,您可能只使用explode(':', $v)trim(。

$array = array('Height: 3/16',
'Color: Standard Red',
'Material: Die-cut, pressure-sensitive paper');
$new_array = array_reduce($array, 
function ($c, $v) { preg_match('/^([^:]+):s+(.*)$/', $v, $m); 
return array_merge($c, array($m[1] => $m[2]));
},
[]);
print_r($new_array);

输出:

Array (
[Height] => 3/16
[Color] => Standard Red
[Material] => Die-cut, pressure-sensitive paper
)

3v4l.org 上的演示

<?php
$input =
[
'Height: 3/16',
'Color: Standard Red',
'Material: Die-cut, pressure-sensitive paper'
];
foreach($input as $v) {
list($key, $val) = explode(':', $v, 2);
$output[$key] = trim($val);
}
var_export($output);

输出:

array (
'Height' => '3/16',
'Color' => 'Standard Red',
'Material' => 'Die-cut, pressure-sensitive paper',
)

最新更新