【问题标题】:How can you edit with shortcuts or macro, a string, in PHPStorm, breaking an array in keys array and values array如何在 PHPStorm 中使用快捷方式或宏、字符串进行编辑,在键数组和值数组中破坏数组
【发布时间】:2015-05-27 12:39:12
【问题描述】:

这是我的第一篇文章,就这样吧。

我需要知道如何在 PHPStorm IDE 中执行此操作。不使用 PHP 函数。

我需要使用 3 种类型的数组,如以下代码所示:

$assoc= array(
    "some_key"=>"some_valuea",
    "some_keyasdasd"=>"some_valuesda",
    "some_keyasdasd"=>"assome_valuedaasd",
    "some_keaay"=>"asdsome_valueaasd",
    "some_keyad"=>"assome_valuedaasd",
    "some_keyaa"=>"some_valueasd",
    "some_keysdadas"=>"asome_valueasd",
    .
    .
    .
    );
$keys=array(
    "some_valuea",
    "some_valuesda",
    "assome_valuedaasd",
    "asdsome_valueaasd",
    "assome_valuedaasd",
    "some_valueasd",
    "asome_valueasd"
    .
    .
    .
    );
$values=array(
    "some_key",
    "some_keyasdasd",
    "some_keyasdasd",
    "some_keaay",
    "some_keyad",
    "some_keyaa",
    "some_keysdadas",
    .
    .
    .
    );

我很想知道如何通过提供$assoc 数组在文本编辑器中使用宏或某种自动化方式创建$keys$values 数组。 另外,如果我有其他两个数组,我想知道如何制作$assoc 数组。

我所追求的一个例子是在本教程中,在 4:35 分钟。

我需要一种方法来选择所有键,然后剪切并能够将它们粘贴为值或新数组。

https://www.youtube.com/watch?v=ScS8Q32lMxA

【问题讨论】:

  • 对于您的最后一个问题,您需要php.net/manual/en/function.array-combine.php。购买为什么需要在数组中生成大量数据?也许您正在寻找配置文件或数据库?
  • @jeroen OP 指的是他的 IDE 中的一个函数,因此某种形式的重构快捷方式,而不是运行时的 php 函数。
  • @arkascha 您可以自动添加的组合数组以及其他两个数组;这就是我添加评论的最后一部分的原因。问题是我真的不明白这一点。
  • 我需要知道如何在我的 IDE 中执行此操作。不是通过使用 PHP 代码。如果我编写 PHP 代码,我可以只使用数组函数就可以了。我处理遗留代码,我有巨大的数组,我需要能够快速编辑。

标签: php arrays vim phpstorm text-editor


【解决方案1】:

您已使用 vim 标记了此问题,因此我认为纯 vim 解决方案也应该适合您。

以下过程不是 100% 自动的,但相当快。

将一个数组一分为二

  1. 复制并粘贴整个数组两次。将第一个副本重命名为$keys,将第二个副本重命名为$values
  2. 转到$keys 数组中的第一对并(在正常模式下)键入qq 以开始在寄存器q 中记录宏。
  3. 键入0 转到行首,然后键入f>ldt,jq。 这表示我们要在该行中找到> 的第一个实例,向右移动一个字符,然后删除最多但不包括第一个,,最后向下一行。我们再次以q 结束宏录制。
  4. 运行宏的次数与行数一样多。例如,如果您还有 100 行,请输入 100@q
  5. 转到$values 中的第一对并再次输入qq
  6. 输入0df>jq
  7. 同样,根据需要多次运行宏。

连接两个数组。

视频中使用的功能称为可视块模式。 您可以通过在正常模式下键入Control-v,然后选择一个文本块来使用它。然后,您可以简单地将值块粘贴到键块的右侧以获取连接的数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 2023-01-21
    • 2021-10-14
    相关资源
    最近更新 更多