将数组映射到php中的键值对

时间:2014-10-21 18:00:32

标签: php arrays

我有以下数组:

    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)的情况下编写这样的映射。是否也可以使用更大的阵列?

2 个答案:

答案 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;
}
相关问题