递减字母值
我试图弄清楚如何将数组中的一组字母值向下移动一个步骤。例如,我的数组包含值(“ d”,“ e”,“ f”,“ g”,“ h”),而我想将其更改为(“
c”,“ d”,“ e”,“ f” “, “G”)。这是我正在使用的代码:
function move_up_left($x) { if($x['orientation'] == "down") {
foreach($x[0] as &$value) {
$value = --$value;
}
} else {
foreach($x[1] as &$value) {
$value = --$value;
}
}
return $x;
}
当我使用正值时,字母会改变;但是,负数似乎根本不起作用。
回答:
PHP已超载++
了字符串;并非如此--
。你可以做同样的事情更清洁的代码chr
,ord
以及array_map
:
function decrementLetter($l) { return chr(ord($l) - 1);
}
function move_up_left($x) {
if($x['orientation'] === 'down') $arr = &$x[0];
else $arr = &$x[1];
$arr = array_map('decrementLetter', $arr);
return $x;
}
这是一个演示。请注意,您可能需要添加一种特殊情况来减少a
-我不确定您要如何处理。
以上是 递减字母值 的全部内容, 来源链接: utcz.com/qa/400143.html