如何在 PHP 中高效地为数组键添加前缀?

Susan Sarandon
发布: 2024-10-26 14:18:30
原创
606 人浏览过

How to Efficiently Add a Prefix to Array Keys in PHP?

高效地为数组键添加前缀

迫切的问题是:如何高效地为平面数组的键添加前缀?

解决方案 1:使用 PHP >= 7.4 箭头函数

<code class="php">$prefix = "prefix";
$array = array_combine(
    array_map(fn($k) => $prefix . $k, array_keys($array)),
    $array
);</code>
登录后复制

解决方案 2:使用外部类(PHP

对于 5.3 之前的 PHP 版本,以下类 -可以使用基于方法:

<code class="php">class KeyPrefixer {

    private $prefix;

    public function __construct($prefix) {
        $this->prefix = (string)$prefix;
    }

    public static function prefix(array $array, $prefix)
    {
        $prefixer = new KeyPrefixer($prefix);
        return $prefixer->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 >= 5.3)
<code class="php">$prefix = "prefix";
foreach ($array as $k => $v)
{
    $array[$prefix . $k] = $v;
    unset($array[$k]);
}</code>
登录后复制
  • 将 array_combine() 与 create_function() 一起使用(PHP

出于安全考虑,不建议使用。

<code class="php">$array = array_combine(
    array_map(create_function('$k', 'return "prefix$k";'), array_keys($array)),
    $array
);</code>
登录后复制

以上是如何在 PHP 中高效地为数组键添加前缀?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板