假设我有下面的数组。
Array
(
[0] => agent_name
[1] => first_name
[2] => my_last_name
[3] => job
[4] => job_description
)
现在我想将此数组转换为以下格式。
Array
(
'agent_name' => 'Agent Name',
'first_name' => 'First Name',
'my_last_name' => 'My Last Name',
'job' => 'Job',
'job_description' => 'Job Description',
)
任何人都可以帮助我,如何设置像这样的人。
谢谢
答案 0 :(得分:7)
首先,您需要用空格替换字符_
,然后使用函数ucwords将单词的前几个字母大写。
<?php
$arr = array('agent_name', 'first_name', 'last_name', 'job', 'job_description');
$new_arr = array();
foreach($arr as $val){
$new_arr[$val] = ucwords(str_replace("_", " ", $val));
}
print_r($new_arr);
?>
答案 1 :(得分:4)
我使用array_map和array_combine的组合来实现这一目标,
$a = array_combine($a,array_map(function($val) {
return implode(' ',array_map('ucfirst',explode('_', $val)));
}, $a));
print_r($a);
这里在工作demo。
答案 2 :(得分:0)
我为此使用了array_combine
$Main_Array = array('agent_name','first_name','my_last_name','job','job_description');
$New_array = array();
foreach ($Main_Array as $key => $value) {
$New_array[] = ucwords(str_replace('_',' ',$value));
}
$get_result = array_combine($Main_Array,$New_array);
echo '<pre>';
print_r($get_result);
答案 3 :(得分:0)
为什么不只是一个简单的foreach可以在同一数组上工作...
<?php
$data = array
(
0 => 'agent_name',
1 => 'first_name',
2 => 'my_last_name',
3 => 'job',
4 => 'job_description'
);
foreach ( $data AS $k => $v )
{
$data[$v] = ucwords ( str_replace ( '_', ' ', $v ) );
unset ( $data[$k] );
}
print_r ( $data );
?>