在 PHP 中修改数组格式


Modify array format in PHP

我使用以下数组格式。我有 2 个用户 ID。我想根据用户 ID 改革这个数组。

我在 PHP 中有以下数组:

Array
(
[808] => Array
    (
        [0] => 1
        [1] => 1
        [2] => 1
        [3] => 1
        [4] => 0
    )
[766] => Array
    (
        [0] => 0
        [1] => 1
        [2] => 0
        [3] => 0
        [4] => 1
    )
)

我希望它采用以下格式:

Array
(
[0] => Array
    (
        [808] => 1
        [766] => 0
    )
[1] => Array
    (
        [808] => 1
        [766] => 1
    )    
[2] => Array
    (
        [808] => 1
        [766] => 0
    )
[3] => Array
    (
        [808] => 1
        [766] => 0
    )
[4] => Array
    (
        [808] => 0
        [766] => 1
    )
)

试试这个:

<?php
$array = Array
(
808 => Array
    (
        '0' => 1,
        '1' => 1,
        '2' => 1,
        '3' => 1,
        '4' => 0
    ),
766 => Array
    (
        '0' => 0,
        '1' => 1,
        '2' => 0,
        '3' => 0,
        '4' => 1,
    )
);
$result = array();
foreach($array as $key => $subarray)
{
    foreach($subarray as $subkey =>$subvalue)
    {
        if(!isset($result[$subkey]))
           $result[$subkey] = array();
        $result[$subkey][$key] = $subvalue;
    }
}

echo '<pre>';
print_r($result);
echo '</pre>';

输出:

Array
(
    [0] => Array
        (
            [808] => 1
            [766] => 0
        )
    [1] => Array
        (
            [808] => 1
            [766] => 1
        )
    [2] => Array
        (
            [808] => 1
            [766] => 0
        )
    [3] => Array
        (
            [808] => 1
            [766] => 0
        )
    [4] => Array
        (
            [808] => 0
            [766] => 1
        )
)

工作示例:咔嚓!

你可以这样做:

$ids = array_keys($your_array);
$new_array = array();
foreach($i=0; $i<count($your_array[0]); $i++){
    foreach($ids as $id){
      $new_array[][$id] = $your_array[$id][$i];
    }
}