Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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
php从html表单数组重新格式化数组表示形式_Php_Arrays_Format - Fatal编程技术网

php从html表单数组重新格式化数组表示形式

php从html表单数组重新格式化数组表示形式,php,arrays,format,Php,Arrays,Format,我不知道如何寻找我面临的问题,所以这就是为什么我在这里问 我想知道是否有一个本机php函数来转换我从html表单获得的以下数组: 原始数组 所需阵列 我知道这可以通过循环实现,但这不是我想要的 PS(不是我的主要问题,只是一个附带问题):如何在stackoverflow中批量格式化代码?总是4个空格吗?如何更快地执行格式化 编辑:PS不是主要问题,它更多的是一个旁注,@riggsfully已经回答了这个问题。这正是你需要的 for ($x = 0; $x < count($array['a

我不知道如何寻找我面临的问题,所以这就是为什么我在这里问

我想知道是否有一个本机php函数来转换我从html表单获得的以下数组:

原始数组 所需阵列 我知道这可以通过循环实现,但这不是我想要的

PS(不是我的主要问题,只是一个附带问题):如何在stackoverflow中批量格式化代码?总是4个空格吗?如何更快地执行格式化


编辑:PS不是主要问题,它更多的是一个旁注,@riggsfully已经回答了这个问题。

这正是你需要的

for ($x = 0; $x < count($array['amount']); $x ++) {
    $arr[$x] = [
        'product_template_id' => $array['product_template_id'][$x],
        'amount' => $array['amount'][$x],
    ];
}
for($x=0;$x$array['product_template_id'][$x],
'amount'=>$array['amount'][$x],
];
}

请参见此处的工作示例

,作为您可以使用的概念证明:

$keys=array\u keys($array);
//对于
这是

但在实践中,对于如此简单的问题,有太多的开销

编辑: 在这里,我压缩(从每个数组中获取一个对应的元素,并创建一个包含这些元素的数组)所有子数组。这是通过使用其属性完成的:

这个函数的一个有趣的用途是构造一个数组数组,通过使用NULL作为回调函数的名称可以很容易地执行


由于可以接受任意数量的数组,因此我为其提供了。

不,没有任何本机函数可以执行此操作。你必须使用exists PHP函数并添加一些逻辑(for loop等…)Format=
CTRL+K
如果你需要经常这样做,你可以自己创建函数。你可以这样做,一次完成,使用sublime IDE,从package installer安装插件codeFormatter,并创建一个伪.PHP文件,将代码粘贴到其中,然后按CTRL+ALT+F格式化代码并从那里复制代码,将其粘贴到问题中,然后选择要格式化的代码并按CTRL+K。就是这样。@DominikVogt,祝你好运:D:D:D:D:D阅读OP的最后一行。这不是你给出答案的问题。:-P哈哈,我现在看到了。如果你的数组总是有相同的长度,当然可以不用循环完成,但事实并非如此,不是吗?我如何在stackoverflow中批量格式化代码?总是4个空格吗?如何更快地执行格式化?这是个问题。Op说,“我知道这可以通过一个循环来完成,但这不是我想要的。”。所以他知道怎么做,他想把代码格式化成这样。OP根本不需要代码。OP需要步骤或方法来格式化SO中的代码。实际上我也想知道,这4个空格的废话是在浪费宝贵的时间!是的,这很简单,如果需要更多的格式,比如IDE,那么请跟随我的完整注释。@mickmackusa,这有时被称为
splat操作符
。它用于参数解包。你可以阅读更多信息。请点击此答案!我受到了这项技术的启发,一直在研究和试验它。我已经修改了OP的输入数组,并使用了您的方法,添加了一堆注释,并在本文中提供了一些链接。一些直接链接:,
$array = [
  '0' => [
    'product_template_id' => '1',
    'amount' => '50'
  ],
  '1' => [
    'product_template_id' => '2',
    'amount' => '100'
  ]
]
for ($x = 0; $x < count($array['amount']); $x ++) {
    $arr[$x] = [
        'product_template_id' => $array['product_template_id'][$x],
        'amount' => $array['amount'][$x],
    ];
}
$keys = array_keys($array);
// For < PHPv5.6
// $zip = call_user_func_array('array_map', array_merge([null], $array));
$zip = array_map(null, ...array_values($array));
$result = array_map(function ($item) use ($keys) {
    return array_combine($keys, $item);
}, $zip);