Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在新的多维数组中使用相同索引分隔键值_Php_Arrays_Multidimensional Array - Fatal编程技术网

Php 如何在新的多维数组中使用相同索引分隔键值

Php 如何在新的多维数组中使用相同索引分隔键值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有下面的多维数组,需要帮助在特定的编队中转换多维数组 Array ( [0] => Array ( [0] => 20 [1] => 15 [2] => 0 ) [1] => Array ( [0] => 28 [1] => 45 [2] =&g

我有下面的多维数组,需要帮助在特定的编队中转换多维数组

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

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

    [2] => Array
        (
            [0] => 20
            [1] => 5
            [2] => 50
        )

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

)
并且想要像这样转换:

Array
(
    [0] => Array
        (
            [0] => 20
            [1] => 28
            [2] => 20
            [3] => 48
        )

    [1] => Array
        (
            [0] => 15
            [1] => 45
            [2] => 5
            [3] => 20
        )

    [2] => Array
        (
            [0] => 0
            [1] => 0
            [2] => 50
            [3] => 0
        )
)
在上面的输出中,我在一个新数组中用相同的索引分隔了键值

有可能吗?

您可以使用函数

$result = array_map(null, ...$array);

以下是一种解决方案:

<?php

$array =
[
    0 =>
        [
            0 => 20,
            1 => 15,
            2 => 0
        ],

    1 =>
        [
            0 => 28,
            1 => 45,
            2 => 0
        ],

    2 =>
        [
            0 => 20,
            1 => 5,
            2 => 50
        ],

    3 =>
        [
            0 => 48,
            1 => 20,
            2 => 0
        ]
];

$result = [];
echo '<pre>';
foreach ($array as $key => $value) {
    for ($i = 0; $i<count($value); $i++) {
        $result[$i][] = $value[$i];
    }
}


var_dump($result);

这段代码工作正常,并且正在执行您要查找的操作,请尝试在编辑器上复制粘贴并运行它

$out = array();
foreach ($array as  $rowkey => $row) {
    foreach($row as $colkey => $col){
        $out[$colkey][$rowkey]=$col;
    }
}

我从帖子中找到了解决方案


这对我来说非常有效。

是的,这是可能的。你试过什么?我想你问的问题以前有人问过。您可能希望签出可能的副本
<?php 
   $originalArray = Array(
         Array
            (
                 20,
                 15,
                 0
            ),

         Array
            (
                 28,
                 45,
                 0
            ),

         Array
            (
                 20,
                 5,
                 50
            ),

         Array
            (
                 48,
                 20,
                 0
            )

    ); //echo"<pre>";print_R($originalArray); 00 10 20 30 40 : 01,11,21,31 :  02,12,22,32,    
$newArray =array();
//echo count($originalArray);
//echo count($originalArray[1]);
$count = array_map('count', $originalArray);
$min = array_keys($count , max($count))[0];
$largest_arr = $originalArray[$min];

for($i=0;$i<count($largest_arr);$i++){
array_push($newArray,$originalArray[$i]);
    for($j=0;$j<count($originalArray);$j++){
echo $j."--".$i."---".count($originalArray)."----".$originalArray[$j][$i]."<br>";
        array_push($newArray[$i],$originalArray[$j][$i]);
    }
}
echo "<pre>";print_R($newArray);
?>
$out = array();
foreach ($array as  $rowkey => $row) {
    foreach($row as $colkey => $col){
        $out[$colkey][$rowkey]=$col;
    }
}