看了一个算法的例子,不懂,详细讲一下好吗?我没别的语言基础//矩阵转置 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.'&nbsp;&nbsp';
  }
 }
$tm = transposition($matrix);echo '<br>转置后的矩阵:';
foreach($tm as $line)
{
echo '<br>';
foreach($line as $element)
{
echo $element.'&nbsp;&nbsp';
}
}

解决方案 »

  1.   


    <?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 . '&nbsp;&nbsp';
    }
    }
    $tm = transposition ( $matrix );echo '<br>转置后的矩阵:';
    foreach ( $tm as $line ) {
    echo '<br>';
    foreach ( $line as $element ) {
    echo $element . '&nbsp;&nbsp';
    }
    }
    注意i和j的位置更改