Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用phpstorm更改/转换数组代码_Php_Arrays_Phpstorm - Fatal编程技术网

使用phpstorm更改/转换数组代码

使用phpstorm更改/转换数组代码,php,arrays,phpstorm,Php,Arrays,Phpstorm,我想知道是否有可能对phpstorm进行更改/转换 $arr[0][0][0] = 0; $arr[0][0][1] = 1; $arr[0][1][0] = 2; $arr[0][1][1] = 3; $arr[1][0][0] = 4; 进入 和/或相反 我只找到了一个在数组之间切换的函数。。。和[…]。 也许有一个插件或什么东西,我可以执行一个小脚本来做这件事? 即使是这个我也找不到。但也许我错过了什么 通过多次使用正则表达式编辑可能是可能的。因为@LazyOne评论说这是不可能的 但是

我想知道是否有可能对phpstorm进行更改/转换

$arr[0][0][0] = 0;
$arr[0][0][1] = 1;
$arr[0][1][0] = 2;
$arr[0][1][1] = 3;
$arr[1][0][0] = 4;
进入

和/或相反

我只找到了一个在数组之间切换的函数。。。和[…]。 也许有一个插件或什么东西,我可以执行一个小脚本来做这件事? 即使是这个我也找不到。但也许我错过了什么


通过多次使用正则表达式编辑可能是可能的。

因为@LazyOne评论说这是不可能的

但是我发现了一个使用regex find&replace函数的解决方法:

按索引分组分隔数组,最后一个索引除外

// Group 1 (0,0)
$arr[0][0][0] = 0;
$arr[0][0][1] = 1;
$arr[0][0][2] = 'test';
// Group 2 (0,1)
$arr[0][1][0] = 2;
$arr[0][1][1] = 3;
// Group 3 (1,0)
$arr[1][0][0] = 4;
启动数组:对于每个组,替换第一个匹配的\$.+\[.+\]\s*=\s*[\s\s]+?;按$1=[$2=>$3];。你得到

// Group 1 (0,0)
$arr[0][0] = [0 => 0];       // <- Array started
$arr[0][0][1] = 1;
$arr[0][0][2] = 'test';
// Group 2 (0,1)
$arr[0][1] = [0 => 2];       // <- Array started
$arr[0][1][1] = 3;
// Group 3 (1,0)
$arr[1][0] = [0 => 4];       // <- Array started
重复步骤3,直到没有匹配项

// Group 1 (0,0)
$arr[0][0] = [0 => 0,
1 => 1,
2 => 'test'];               // <- Index appended
// Group 2 (0,1)
$arr[0][1] = [0 => 2,
1 => 3];
// Group 3 (1,0)
$arr[1][0] = [0 => 4];
这仅在必须转换非常大的数组时才实用

注意:必须删除示例中的注释


有趣的事实是,这也适用于支持正则表达式查找和替换的其他编辑器或IDE。

所有代码格式规则都位于“设置|代码样式”中。如果您无法使用现有选项实现预期结果。。那么你可能只会向他们提交一张罚单,也许他们将来会实施这样的规则。另外,您提供的代码示例在格式化之前需要进行一些特殊的代码转换-这是不可能的,我也不希望它很快出现。我认为这是对标题的一点误解。我关心的是这种转变。正如我已经提到的:这种转变是不可能的
// Group 1 (0,0)
$arr[0][0] = [0 => 0,
1 => 1];                    // <- Index appended
$arr[0][0][2] = 'test';
// Group 2 (0,1)
$arr[0][1] = [0 => 2,
1 => 3];                    // <- Index appended
// Group 3 (1,0)
$arr[1][0] = [0 => 4];
// Group 1 (0,0)
$arr[0][0] = [0 => 0,
1 => 1,
2 => 'test'];               // <- Index appended
// Group 2 (0,1)
$arr[0][1] = [0 => 2,
1 => 3];
// Group 3 (1,0)
$arr[1][0] = [0 => 4];
$arr = [0 => [0 => [0 => 0,
                    1 => 1,
                    2 => 'test'],
              1 => [0 => 2,
                    1 => 3]],
        1 => [0 => [0 => 4]]];