如何更改数组中每个键的第一个char?

时间:2013-04-17 07:09:43

标签: php arrays

我有一个包含情人案例中所有键的数组,我需要更改它们,即firs char将为大写字母,就像ucfirs函数一样。是否可以不创建新阵列?

4 个答案:

答案 0 :(得分:12)

如果没有创建新阵列,这是不可能的,但是这里有一个可以使用的时髦单行:

$array = array_combine(
    array_map('ucfirst', array_keys($array)), 
    array_values($array)
);

它将数组分解为键和值,转换键然后将两个部分粘合在一起。

答案 1 :(得分:3)

试试这段代码:

foreach ($array as $key => $value) {
        unset ($array[$key]);
        $array[ucfirst($key)] = $value;
}

答案 2 :(得分:0)

试试这个

    foreach ($arr as $key=>$val){
        unset($arr[$key]);
        $key = ucfirst($key);
        $arr[$key]=$val;
      }

答案 3 :(得分:0)

试试这个。它也适用于嵌套数组。

<?php
function ucfirstKeys(&$data)
{
  foreach ($data as $key => $value)
  {
    // Convert key
    $newKey = ucfirst($key);

    // Change key if needed
    if ($newKey != $key)
    {
      unset($data[$key]);
      $data[$newKey] = $value;
    }

    // Handle nested arrays
    if (is_array($value))
    {
      ucfirstKeys($data[$key]);
    }
  }
}

$test = array('foo' => 'bar', 'moreFoo' => array('more' => 'foo'));
ucfirstKeys($test);
print_r($test);