在PHP中旋转或更改数组的方向

在PHP中旋转或更改数组的方向,php,arrays,Php,Arrays,我想旋转数组的方向,使行和列反转 例如,我想将其转换为: 1 cat calico 2 dog collie 3 cat siamese 4 dog mutt 为此: 4 3 2 1 dog cat dog cat mutt siamese collie calico 我怎样才能做到这一点 $initialData = array( 1 =&g

我想旋转数组的方向,使行和列反转

例如,我想将其转换为:

1     cat     calico
2     dog     collie
3     cat     siamese
4     dog     mutt
为此:

4       3        2         1
dog     cat      dog       cat
mutt    siamese  collie    calico
我怎样才能做到这一点

$initialData = array( 1 => array('cat', 'calico'),
                      2 => array('dog', 'collie'),
                      3 => array('cat', 'siamese'),
                      4 => array('dog', 'mutt'),
                    );

$transposedArray = call_user_func_array('array_map',array_merge(array(NULL),$initialData));

var_dump($transposedArray);

请注意,它丢失了数组索引,只是@Keith链接的问题中@Codler回答的一行变体。以下是一种实现方法:

function rotate_2d_array($array)
{
    $result = array();
    foreach (array_values($array) as $key => $sub_array)
    {
        foreach (array_values($sub_array) as $sub_key => $value)
        {
            if (empty($result[$sub_key]))
            {
                $result[$sub_key] = array($value);
            }
            else
            {
                array_unshift($result[$sub_key], $value);
            }
        }
    }
    return $result;
}
下面是测试:

$a = array(
    array(1, 'cat','calico'),
    array(2, 'dog', 'collie'),
    array(3, 'cat', 'siamese'),
    array(4, 'dog', 'mutt')
);
print_r($a);

$b = rotate_2d_array($a);
print_r($b);

听起来你想转置一个多维数组:你能给我们看看你的一些代码吗?我不知道你在问什么,你是想在页面上以不同的方式显示信息吗?如果是这样,这不是一个PHP问题,而是一个HTML/CSS问题。