我有多维数组,看起来像这样。这是我在下面的片段:
$tyreSpec = array(
'width_id' => array(
0 => '8',
1 => '24'
),
'profile_id' => array(
0 => '8',
1 => '13'
),
'diameter_id' => array(
0 => '4',
1 => '13'
),
'speed_id' => array(
0 => '6',
1 => '13'
),
'load_id' => array(
0 => '12',
1 => '31'
)
);
如何从上面创建这样的数组?
$toDb = array (
array(
'width_id' => 8,
'profile_id' => 8,
'diameter_id' => 4,
'speed_id' => 6,
'load_id' => 12
),
array(
'width_id' => 24,
'profile_id' => 13,
'diameter_id' => 13,
'speed_id' => 13,
'load_id' => 31
)
);
这是我的代码,我无法完成它:
$ToDb = array();
//$i = 0;
$count = 0;
foreach($tyreSpec as $row ) {
$count = count($row);
}
for($i = 0; $i < $count; $i++) {
foreach($tyreSpec as $row) {
array_push($ToDb, $row[$i]);
}
}
答案 0 :(得分:4)
您可以使用两个简单的循环来实现目标:
$toDb = array();
foreach ($tyreSpec as $key=>$val) {
for ($i=0; $i<count($val); ++$i)
$toDb[$i][$key] = $val[$i];
}
答案 1 :(得分:0)
我认为你正在寻找这个:
// $source is your input array
$result = [];$result = [];
array_walk($source, function($v,$k) use (&$result){
$result[0][$k] = $v[0];
$result[1][$k] = $v[1];
});
print_r($result);
演示是Here
答案 2 :(得分:0)
{{1}}