看了一个算法的例子,不懂,详细讲一下好吗?我没别的语言基础//矩阵转置 function transposition($matrix)
{
$i = 0;
$j = 0;
foreach($matrix as $line)
{
foreach($line as $element)
{
$tm[$j++][$i] = $element;
}
$j = 0;
$i ++;
}
return $tm;
} $matrix = array(
array(1,2,3,'a'),
array(4,5,6,'b'),
array(7,8,9,'c'), ); echo '<br>转置前的矩阵:';
foreach($matrix as $line)
{
echo '<br>'; foreach($line as $value)
{
echo $value.'  ';
}
}
$tm = transposition($matrix);echo '<br>转置后的矩阵:';
foreach($tm as $line)
{
echo '<br>';
foreach($line as $element)
{
echo $element.'  ';
}
}
{
$i = 0;
$j = 0;
foreach($matrix as $line)
{
foreach($line as $element)
{
$tm[$j++][$i] = $element;
}
$j = 0;
$i ++;
}
return $tm;
} $matrix = array(
array(1,2,3,'a'),
array(4,5,6,'b'),
array(7,8,9,'c'), ); echo '<br>转置前的矩阵:';
foreach($matrix as $line)
{
echo '<br>'; foreach($line as $value)
{
echo $value.'  ';
}
}
$tm = transposition($matrix);echo '<br>转置后的矩阵:';
foreach($tm as $line)
{
echo '<br>';
foreach($line as $element)
{
echo $element.'  ';
}
}
<?php
function transposition($matrix) {
$i = 0;
$j = 0;
echo '<br/>分析过程:<br/>';
foreach ( $matrix as $old_i => $line ) {
foreach ( $line as $old_j => $element ) {
// $element = $matrix[$old_i][$old_j];
// $tm [$j++] [$i] = $element; 这句相当于
// $tm [$j] [$i] = $element;$j++;
$tm [$j] [$i] = $element;
echo "\$matrix[$old_i][$old_j] = ";
echo "\$tm[$j][$i] <br/><br/>";
$j++;
}
$j = 0;
$i ++;
}
return $tm;
}$matrix = array(
array(1,2,3,'a'),
array(4,5,6,'b'),
array(7,8,9,'c'),
);echo '<br>转置前的矩阵:';
foreach ( $matrix as $line ) {
echo '<br>';
foreach ( $line as $value ) {
echo $value . '  ';
}
}
$tm = transposition ( $matrix );echo '<br>转置后的矩阵:';
foreach ( $tm as $line ) {
echo '<br>';
foreach ( $line as $element ) {
echo $element . '  ';
}
}
注意i和j的位置更改