2015-06-05 68 views
2

这是我的阵列(输入):如何修剪数组中每个键的最后两个字符?

$value = array("jan01" => "01", "feb02" => "02", "mar03" => "03", "apr04" => "04"); 

我使用这个代码来获取数组键:

implode(" ", array_map("ucwords", array_keys($value))); 

现在我的问题是我想修边最后两个获得所有钥匙每个键的字符。

如何更改/修改我的代码,以便修剪每个键的最后两个字符?

编辑:

我也想跳过第3个按键,意味着我不想第3个按键进行修整。

+1

把你的代码。数组结构以及期望的内容。我们可以通过查看这一行来说明你需要做什么。谢谢。 –

+0

你可以发布你的阵列结构以及预期的输出 –

回答

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))); 
+0

还有一件事缺少部分问题,我可以跳过前3个键修剪吗? –

+0

对不起,我没有提到 –

+1

@ImranQamer现在更新了我的答案。 – Rizier123

1

这里有一些未确定的数组深度。

$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+,因为较低版本没有匿名函数,这将不起作用。

相关问题