我需要所有的话都是正确的,首字母大写,其他小写。
我试过了:
array_walk_recursive($my_array,'ucwords');
但我想这个功能需要由用户定义。
所以我写道:
function ucrecursive($value,$key) {
return ucwords($value);
}
array_walk_recursive(&$my_array,'ucrecursive');
仍然无效。有什么想法吗?
编辑:样本数据:
Array
(
[0] => Array
(
[count] => 768
[value] => SATIN NICKEL
)
[1] => Array
(
[count] => 525
[value] => POLISHED CHROME
)
[2] => Array
(
[count] => 180
[value] => AGED BRONZE
)
等...
答案 0 :(得分:3)
array_walk_recursive($my_array,function(&$value) {
$value = ucwords($value);
});
试试这个
答案 1 :(得分:2)
自己构建它应该很容易:
function ucWordsRecursive( array &$array ) {
foreach( $array as &$value ) {
if( is_array( $value ) ) {
ucWordsRecursive( $value );
}
else if( is_string( $value ) ){
$value = ucwords( strtolower( $value ) );
}
}
}
答案 2 :(得分:1)
那将是:
array_walk_recursive($my_array,function(&$value) {
$value = ucwords(strtolower($value));
});
答案 3 :(得分:0)
如果有人想在没有任何内置函数的情况下以递归方式构建它
function capitalizeWords ($array) {
if (count($array) === 1) {
return [ucwords($array[0])];
}
$res = capitalizeWords(array_slice($array,0,-1));
array_push($res,ucwords(array_slice($array,count($array)-1)[0]));
return $res;
}
capitalizeWords(['php','javascript','golang']);`