如何 trim 数组中每个键的最后两个字符?
How can I trim the last two characters of each key in an array?
这是我的数组(输入):
$value = array("jan01" => "01", "feb02" => "02", "mar03" => "03", "apr04" => "04");
我正在使用此代码获取数组键:
implode(" ", array_map("ucwords", array_keys($value)));
现在我的问题是我想通过 trim 获取每个键的最后两个字符来获取所有键。
如何 change/modify 我的代码,使其 trim 成为每个键的最后两个字符?
编辑:
我也想跳过前 3 个键,这意味着我不希望前 3 个键是 trimmed。
这是未确定的数组深度。
$arr = your array;
$trimmed_values = array();
array_walk_recursive($arr, function($key, $value) use (&$trimmed_values)
{
$trimmed_values[] = substr($key, 0, -2);
});
如果您不使用 PHP 5.3+,这将不起作用,因为较低版本没有匿名函数。
我认为这对你有用:
只需从您的密钥中取出 substr()
,然后在其上使用 ucwords()
。
implode(" ",array_map(function($v){
return ucwords(substr($v, 0, -2));
},array_keys($value)));
编辑:
AS 根据您更新的问题,您不想从前 3 个元素中获取 substr。所以只需使用一个计数器变量,例如
$counter = 1;
echo implode(" ", array_map(function($v)use(&$counter){
if($counter++ > 3)
return ucwords(substr($v, 0, -2));
return ucwords($v);
},array_keys($value)));
这是我的数组(输入):
$value = array("jan01" => "01", "feb02" => "02", "mar03" => "03", "apr04" => "04");
我正在使用此代码获取数组键:
implode(" ", array_map("ucwords", array_keys($value)));
现在我的问题是我想通过 trim 获取每个键的最后两个字符来获取所有键。
如何 change/modify 我的代码,使其 trim 成为每个键的最后两个字符?
编辑:
我也想跳过前 3 个键,这意味着我不希望前 3 个键是 trimmed。
这是未确定的数组深度。
$arr = your array;
$trimmed_values = array();
array_walk_recursive($arr, function($key, $value) use (&$trimmed_values)
{
$trimmed_values[] = substr($key, 0, -2);
});
如果您不使用 PHP 5.3+,这将不起作用,因为较低版本没有匿名函数。
我认为这对你有用:
只需从您的密钥中取出 substr()
,然后在其上使用 ucwords()
。
implode(" ",array_map(function($v){
return ucwords(substr($v, 0, -2));
},array_keys($value)));
编辑:
AS 根据您更新的问题,您不想从前 3 个元素中获取 substr。所以只需使用一个计数器变量,例如
$counter = 1;
echo implode(" ", array_map(function($v)use(&$counter){
if($counter++ > 3)
return ucwords(substr($v, 0, -2));
return ucwords($v);
},array_keys($value)));