我想把一个二维数组“扭曲”90°。
让我来解释一下。
我有一个这样的数组:
array(
array( adam , brad , chris , david ),
array( 21 , 23 , 22 , 26 )
)我想把它转换成这样的东西:
array(
array( adam , 21 ),
array( brad , 23 ),
array( chris , 22 ),
array( david , 26 )
)我该怎么做呢?
发布于 2012-11-28 20:04:49
像这样的东西应该是有效的:
// Your array stored as $arr
$newArr = array();
for ($i = 0;$i < count($arr[0]); $i++) {
$newArr[] = array($arr[0][$i],$arr[1][$i]);
}编辑:标签排序,但数组已排序,是否也要排序?
发布于 2012-11-28 20:06:38
不过,我还是会抛出一个问题:
$array = array(
array('adam', 'brad', 'chris', 'david'),
array(21, 23, 22, 26)
);
$final_array = array();
foreach ($array[0] as $k => $v)
{
$final_array[] = array($array[0][$k], $array[1][$k]);
}
print_r($final_array);在对此的评论中出现了一些混乱之后,有人指出,您可以将代码缩减为以下内容:
foreach ($array[0] as $k => $v)
{
$final_array[] = array($v, $array[1][$k]);
}谢谢,斯坦
发布于 2016-07-26 04:37:09
这里有一个用于关联数组(这是一种二维数组):
// Take array like ([0] => ('key1' => 'value1', 'key2' => 'value2'), [1] => ('key1' => 'value45', 'key2' => 'value3'))
// and transform it to like ('key1' => ([0] => 'value1', [1] => 'value45'), 'key2' => ([0] => 'value2', [1] => 'value3'))
function array_twist(array $array) {
$number_of_rows = count($array);
$twisted_array = array();
for ($i = 0; $i < $number_of_rows; ++$i) {
$fields = array_keys($array[$i]);
foreach ($fields as $field) {
$data = $array[$i][$field];
if ($data != '') {
$twisted_array[$field][] = $data;
}
}
}
return $twisted_array;
}https://stackoverflow.com/questions/13604590
复制相似问题