我有以下数组:
array (size=2)
'filename' =>
array (size=2)
0 => string 'f1' (length=2)
1 => string 'f2' (length=2)
'url' =>
array (size=2)
0 => string 'u1' (length=2)
1 => string 'u2' (length=2)
我想这样映射:
array (size=2)
0 =>
array (size=2)
'filename' => string 'f1' (length=2)
'url' => string 'u1' (length=2)
1 =>
array (size=2)
'filename' => string 'f2' (length=2)
'url' => string 'u2' (length=2)
如何在不知道调用键的位置(文件名和URL)的情况下编写这样的映射。是否也可以使用更大的阵列?
答案 0 :(得分:4)
这个怎么样:
foreach ($startArray as $key1 => $value1) {
foreach ($value1 as $key2 => $value2) {
$endArray[$key2][$key1] = $value2;
}
}
答案 1 :(得分:0)
此解决方案将足够灵活,可以处理任何大小的数组。
将数组作为$ startArray:
$result = array();
$counter = 0;
while ( count ( array_values($startArray)[0] ) < $counter - 1 ) {
$result[] = add_array( $startArray, $counter );
$counter++;
}
function add_array( $array, $index ) {
$result = array();
foreach ( $array as $array_key => $array_value ) {
$result[$array_key] = $array_value[$index];
}
return $result;
}