我有一个包含情人大小写的所有键的数组,我需要将它们更改为第一个字符为大写,就像ucfirs
函数一样。是否可以不创建新数组?
问问题
1886 次
4 回答
13
不创建新数组是不可能的,但这里有一个你可以使用的时髦的单线:
$array = array_combine(
array_map('ucfirst', array_keys($array)),
array_values($array)
);
它将数组分解为键和值,转换键,然后将两个部分粘合在一起。
于 2013-04-17T07:18:31.010 回答
4
试试这个代码:
foreach ($array as $key => $value) {
unset ($array[$key]);
$array[ucfirst($key)] = $value;
}
于 2013-04-17T07:13:13.523 回答
0
试试这个
foreach ($arr as $key=>$val){
unset($arr[$key]);
$key = ucfirst($key);
$arr[$key]=$val;
}
于 2013-04-17T07:12:25.537 回答
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);
于 2013-04-17T07:22:34.463 回答