使用 array_map 和自定义回调,将原始映射到您想要的:
<?php
$original =[
'dani : developer',
'john : not_developer',
];
$converted = array_map(
function ($element) {
list($name, $value) = explode(':', $element);
return [
'name' => trim($name),
'value' => trim($value),
];
},
$original
);
var_dump($converted);
您可以再次使用这种使用array_map 的变体来一起进行爆炸和修剪:
<?php
$original =[
'dani : developer',
'john : not_developer',
];
$converted = array_map(
function ($element) {
list($name, $value) = array_map(
'trim',
explode(':', $element)
);
return [
'name' => $name,
'value' => $value,
];
},
$original
);
var_dump($converted);
或者这种变体进一步使用了所需输出的子键名的预设数组,以及array_combine:
<?php
$original =[
'dani : developer',
'john : not_developer',
];
$conversion_keys = ['name', 'value'];
$converted = array_map(
function ($element) use ($conversion_keys) {
return array_combine(
$conversion_keys,
array_map(
'trim',
explode(':', $element)
)
);
},
$original
);
var_dump($converted);
他们都输出你想要的结果:
array(2) {
[0]=>
array(2) {
["name"]=>
string(4) "dani"
["value"]=>
string(9) "developer"
}
[1]=>
array(2) {
["name"]=>
string(4) "john"
["value"]=>
string(13) "not_developer"
}
}