我想旋转数组的方向,以便反转行和列。
例如,我想转换它:
1 cat calico
2 dog collie
3 cat siamese
4 dog mutt
到此:
4 3 2 1
dog cat dog cat
mutt siamese collie calico
我该如何做到这一点?
答案 0 :(得分:1)
以下是一种可以实现此目的的方法:
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);
答案 1 :(得分:0)
$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);
请注意,它丢失了数组索引,并且只是@Ceith链接问题中@ Codler响应的单行变体