PHP将诸如first_name之类的数组格式更改为First Name

时间:2019-02-18 11:04:06

标签: php arrays

假设我有下面的数组。

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',
)

任何人都可以帮助我,如何设置像这样的人。

谢谢

4 个答案:

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

?>