Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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 基于密钥模式将数组拆分为多个部分_Php_Arrays_Sorting - Fatal编程技术网

Php 基于密钥模式将数组拆分为多个部分

Php 基于密钥模式将数组拆分为多个部分,php,arrays,sorting,Php,Arrays,Sorting,我有一个数组,希望根据数组中的键将其拆分为多个数组 所以在下面的例子中有3个键:1.post,2.social,3.test。我希望能够得到三个独立的阵列 我的问题是我想把它们分成三个独立的数组。最好的方法是什么。我找到的最接近的函数是array\u chunk,但是这会将数组拆分为定义的大小-我不知道 我不知道数组的潜在大小 : 如果我理解正确,您可以像下面这样做,但这是一个XY问题,为什么不先正确构造数组 $normalised = []; foreach ($array as $key =

我有一个数组,希望根据数组中的键将其拆分为多个数组

所以在下面的例子中有3个键:1.post,2.social,3.test。我希望能够得到三个独立的阵列

我的问题是我想把它们分成三个独立的数组。最好的方法是什么。我找到的最接近的函数是array\u chunk,但是这会将数组拆分为定义的大小-我不知道 我不知道数组的潜在大小

:


如果我理解正确,您可以像下面这样做,但这是一个XY问题,为什么不先正确构造数组

$normalised = [];
foreach ($array as $key => $value) {
    list($k, $a) = explode('-', $key, 2);
    $normalised[$k][$a] = $value;
}

你的问题是什么?同时显示您当前的代码。您的示例包含五个键,而不是三个。hi justBaron-是的,五个键将被拆分为三个单独的数组。i、 e“post”将形成一个包含两个键的数组:kesy post post Code和post telephonehi Lawrance感谢您的回复。你将如何构造阵列?按你想要的方式构造。对不起。我的意思是,当你说首先要正确地构造我的数组时,我在寻求澄清你的意思是什么?也许你是对的,有更好的方法来构建array@theSeeker在构建原始阵列的位置,将其更改为所需的结构。这样,您就不需要这些额外的代码来修复结构。
$normalised = [];
foreach ($array as $key => $value) {
    list($k, $a) = explode('-', $key, 2);
    $normalised[$k][$a] = $value;
}