递减字母值

我试图弄清楚如何将数组中的一组字母值向下移动一个步骤。例如,我的数组包含值(“ 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已超载++了字符串;并非如此--。你可以做同样的事情更清洁的代码chrord以及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

回到顶部