根据值的数量创建多维数组
Create a multidimensional array based on number of values
我有一个数组,它是从一个包含很多字段的表单中获取的,我需要将这些字段排序在一个数组下,并将该数组排序在“'main'”数组下。生病 post 我有什么,我需要得到什么。
我有什么:
Array
(
[perfil_area1] => Array
(
[0] => a2
[1] => a3
)
[perfil_years] => Array
(
[0] => 2
[1] => 4
)
[perfil_function] => Array
(
[0] => f1
[1] => f4
)
[perfil_obs] => Array
(
[0] => teste1
[1] => teste2
)
[perfil_company] => Array
(
[0] => emp1
[1] => emp2
)
)
这就是我需要做的,所以我可以把它变成一个查询:
我需要什么
Array
(
[0] =>
(
[perfil_area1] => a2
[perfil_years] => 2
[perfil_function] => f1
[perfil_obs] => teste1
[perfil_company] => emp1
)
[1] =>
(
[perfil_area1] => emp2
[perfil_years] => 2
[perfil_function] => f4
[perfil_obs] => 4
[perfil_company] => a3
)
)
我已经尝试使用 2 个 foreach,但我没能完成它。我已经阅读了 Create a multidimensional array in a loop , , create multidimensional array using a foreach loop , Converting an array from one to multi-dimensional based on parent ID values 以及更多内容,但我仍然无法做到。关于如何创建它的任何提示?
您只需要遍历输入数组并构建新数组
$new = [];
foreach ($in as $key=>$arr) {
$new[0][$key] = $arr[0];
$new[1][$key] = $arr[1];
}
<?php
$result = [];
for ($i=0; $i<count(reset($array)); $i++) {
$result[] = array_combine(array_keys($array), array_column($array, $i));
}
有关 array_combine(), array_keys() and array_column() 的更多详细信息,请阅读手册。
我有一个数组,它是从一个包含很多字段的表单中获取的,我需要将这些字段排序在一个数组下,并将该数组排序在“'main'”数组下。生病 post 我有什么,我需要得到什么。 我有什么:
Array
(
[perfil_area1] => Array
(
[0] => a2
[1] => a3
)
[perfil_years] => Array
(
[0] => 2
[1] => 4
)
[perfil_function] => Array
(
[0] => f1
[1] => f4
)
[perfil_obs] => Array
(
[0] => teste1
[1] => teste2
)
[perfil_company] => Array
(
[0] => emp1
[1] => emp2
)
)
这就是我需要做的,所以我可以把它变成一个查询: 我需要什么
Array
(
[0] =>
(
[perfil_area1] => a2
[perfil_years] => 2
[perfil_function] => f1
[perfil_obs] => teste1
[perfil_company] => emp1
)
[1] =>
(
[perfil_area1] => emp2
[perfil_years] => 2
[perfil_function] => f4
[perfil_obs] => 4
[perfil_company] => a3
)
)
我已经尝试使用 2 个 foreach,但我没能完成它。我已经阅读了 Create a multidimensional array in a loop ,
您只需要遍历输入数组并构建新数组
$new = [];
foreach ($in as $key=>$arr) {
$new[0][$key] = $arr[0];
$new[1][$key] = $arr[1];
}
<?php
$result = [];
for ($i=0; $i<count(reset($array)); $i++) {
$result[] = array_combine(array_keys($array), array_column($array, $i));
}
有关 array_combine(), array_keys() and array_column() 的更多详细信息,请阅读手册。