我有这个阵列:
array(
0 => array("name", "address", "city"),
1=> array( "anoop", "palasis", "Indore"),
2=> array( "ravinder", "annapurna", "Indore")
)
我希望以这种方式制作这个数组:
array(
0 => array("name" = >"anoop" , "address" = >"palasia", "city" = >"Indore"),
1 => array("name" = >"ravinder" , "address" = >"annapurna", "city" = >"Indore")
)
答案 0 :(得分:4)
使用array_combine。如果$array
包含您的数据
$result = array(
array_combine($array[0], $array[1]),
array_combine($array[0], $array[2])
);
一般
$result = array();
$len = count($array);
for($i=1;$i<$len; $i++){
$result[] = array_combine($array[0], $array[$i]);
}
答案 1 :(得分:2)
现代方式是:
$data = array_column($data, 'value', 'key');
在你的情况下:
$data = array_column($data, 1, 0);
答案 2 :(得分:1)
如果您的数据位于$array
:
$res = array();
foreach ($array as $key=>$value) {
if ($key == 0) {
continue;
}
for ($i = 0; $i < count($array[0]); $i++) {
$res[$array[0][$i]] = $value[$i];
}
}
结果现在在$res
。
答案 3 :(得分:1)
以下是您可以使用的功能:
function rewrap(Array $input){
$key_names = array_shift($input);
$output = Array();
foreach($input as $index => $inner_array){
$output[] = array_combine($key_names,$inner_array);
}
return $output;
}
这是一个演示:
// Include the function from above here
$start = array(
0 => array("name", "address", "city"),
1 => array("anoop", "palasis", "Indore"),
2 => array("ravinder", "annapurna", "Indore")
);
print_r(rewrap($start));
输出:
Array
(
[0] => Array
(
[name] => anoop
[address] => palasis
[city] => Indore
)
[1] => Array
(
[name] => ravinder
[address] => annapurna
[city] => Indore
)
)
注意:您的第一个数组定义索引1
两次,所以我将第二个更改为2
,如下所示:
array(0 => array("name", "address", "city"), 1 => array("anoop", "palasis", "Indore"),2 => array("ravinder", "annapurna", "Indore"))
这可能只是一个错字。
答案 4 :(得分:0)
假设您正在解析CSV文件,请查看此问题的答案: