我试图弄清楚如何将数组中的一组字母值向下移动一个步骤。例如,我的数组包含值(“ 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:
++
--
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-我不确定您要如何处理。
a