有效地为数组键添加前缀
要将字符串添加到数组中所有键的开头,有多种方法可用。
单行解决方案
最简洁的解决方案涉及 array_map 和 array_combine 的组合:
<code class="php">$prefix = "prefix"; $array = array_combine( array_map( fn($k) => $prefix . $k, array_keys($array) ), $array );</code>
函数式方法
对于 PHP 7.4 及以上版本,可以使用箭头函数语法:
<code class="php">$prefix = "prefix"; $array = array_combine( array_map( fn($k) => $prefix . $k, array_keys($array) ), $array );</code>
迭代方法
传统的基于循环的解决方案还可以使用:
<code class="php">foreach ($array as $k => $v) { $array[$prefix . $k] = $v; unset($array[$k]); }</code>
PHP 5.3 之前的自定义类
对于较旧的 PHP 版本,可以使用带有 mapArray 方法的自定义类:
<code class="php">class KeyPrefixer { public function prefix(array $array, $prefix) { return $this->mapArray($array); } public function mapArray(array $array) { return array_combine( array_map(array($this, 'mapKey', array_keys($array)), $array ); } public function mapKey($key) { return $this->prefix . (string)$key; } } $prefix = "prefix"; $array = KeyPrefixer::prefix($array, $prefix);</code>
以上是如何在 PHP 中高效地为数组键添加前缀?的详细内容。更多信息请关注PHP中文网其他相关文章!