Php 如何修剪数组中每个键的最后两个字符?

Php 如何修剪数组中每个键的最后两个字符?,php,arrays,substring,associative-array,Php,Arrays,Substring,Associative Array,这是我的数组(输入): 我正在使用以下代码获取数组键: implode(" ", array_map("ucwords", array_keys($value))); 现在我的问题是我想通过修剪每个键的最后两个字符来获得所有键 如何更改/修改代码,使其成为每个键的最后两个字符 编辑: 我还想跳过前3个关键点,这意味着我不想修剪前3个关键点。这里有一些关于未确定数组深度的内容 $arr = your array; $trimmed_values = array(); array_walk_re

这是我的数组(输入):

我正在使用以下代码获取数组键:

implode(" ", array_map("ucwords", array_keys($value)));
现在我的问题是我想通过修剪每个键的最后两个字符来获得所有键

如何更改/修改代码,使其成为每个键的最后两个字符

编辑:


我还想跳过前3个关键点,这意味着我不想修剪前3个关键点。

这里有一些关于未确定数组深度的内容

$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)));
编辑:

根据更新的问题,您不想从前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)));

把你的密码放进去。数组结构和期望值。我们如何通过这一行来说明您必须做什么。谢谢。你能把你的数组结构和预期的输出一起发布吗?还有一个问题,我能跳过前3个键进行修剪吗?对不起,我没有在中提到question@ImranQamer您需要它来检查它是否是前3个元素之一,或者在使用(&$counter)时没有得到该点,所以现在应该可以了,让我查一下it@ImranQamer不客气:)(如果您提供一个包含输入、当前输出和预期输出的示例,下次您将更快地得到答案,这也让问题变得非常清楚)
$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)));