在PHP中操作多维数组

时间:2015-04-20 11:06:17

标签: php arrays multidimensional-array

我手头有以下阵列。我必须迭代以下数组,以便它将创建另一个数组,其输出为新数组的第0个索引上每个子数组的第0个索引,依此类推。

当前数组

 Array
    (
        [0] => Array
            (
                [0] => 1
                [1] => 2
                [2] => 3
            )

        [1] => Array
            (
                [0] => 1
                [1] => 2
                [2] => 3
            )

        [2] => Array
            (
                [0] => 1
                [1] => 2
                [2] => 3
            )

    )

所需输出

Array
    (
        [0] => Array
            (
                [0] => 1
                [1] => 1
                [2] => 1
            )

        [1] => Array
            (
                [0] => 2
                [1] => 2
                [2] => 2
            )

        [2] => Array
            (
                [0] => 3
                [1] => 3
                [2] => 3
            )

    )

3 个答案:

答案 0 :(得分:5)

对于PHP版本> = 5.5.0,您有array_column()函数:

$newArray = array_column(
    $oldArray,
    0
);

对于早期版本的PHP,您可以使用array_map()

$column = 0;
$newArray = array_map(
    function ($value) use ($column) {
        return $value[$column];
    },
    $oldArray
);

答案 1 :(得分:0)

这不是很多信息......所以,比如:

$newArray = [];
foreach($topArray as $idxTop => $valTop){
  if(is_array($valTop)){($newArray[] = $valTop[0];}
}

答案 2 :(得分:0)

$input = [
    0 => [1, 2, 3],
    1 => [1, 2, 3],
    2 => [1, 2, 3]
];

$output = [
    array_column($input, 0),
    array_column($input, 1),
    array_column($input, 2)
];

print_r($output);

// Output:
// 
// Array
// (
//     [0] => Array
//         (
//             [0] => 1
//             [1] => 1
//             [2] => 1
//         )

//     [1] => Array
//         (
//             [0] => 2
//             [1] => 2
//             [2] => 2
//         )

//     [2] => Array
//         (
//             [0] => 3
//             [1] => 3
//             [2] => 3
//         )

// )