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