2013-08-22 201 views
1

我想實現一個函數來乘以兩個數值多維數組,我執行了三個循環遍歷相應的行和列。然而,有一些失敗。PHP多維數組訪問函數

PHP只是不產生任何網頁,每當我評論的功能代碼和函數調用失敗...

function multiplicaMatriz($matrix1, $matrix2){ 

    $ab = 0; 

    echo "<table border="1">"; 
     for($i = 0; $i < 3; $i++) { 
      echo "<tr>"; 
      for($j = 0; $j < 3; $j++) { 
       $ab = 0; 
       for($k = 0; $k < 3; $k++) { 
        $ab += (($matrix1[$i][$k])*($matrix2[$k][$j])); 
       } 
       echo "<td>".$ab."</td>"; 
      } 
      echo "</tr>"; 
     } 
    echo "</table>"; 
} 

休息的我的代碼如下:

<html> 
    <head> 
     <title> 
     Novatos del PHP 
     </title> 
    </head> 

    <body> <center> 



    <?php 


     $m1 = array ( array (rand(0,100), rand(0,100), rand(0,100)), 
         array (rand(0,100), rand(0,100), rand(0,100)), 
         array (rand(0,100), rand(0,100), rand(0,100)), 
         //array (rand(0,100), rand(0,100), rand(0,100)) 
        ); 


     $m2 = array ( array (rand(0,100), rand(0,100), rand(0,100)), 
         array (rand(0,100), rand(0,100), rand(0,100)), 
         array (rand(0,100), rand(0,100), rand(0,100)), 
         //array (rand(0,100), rand(0,100), rand(0,100)) 
        ); 

     function imprimeMatriz($matrix){ 
      echo "<table width=\"200\" border=\"1\">"; 

      foreach($matrix as $row =>$rValue){ 
       echo "<tr>"; 
       foreach($rValue as $col =>$cValue){ 
        echo "<td>".$cValue."</td>"; 
       } 
       echo "</tr>"; 
      } 
      echo "</table>"; 
     } 

     function sumaMatriz($matrix1, $matrix2){ 
       echo "<table width=\"200\" border=\"1\">"; 

       foreach($matrix1 as $row1 =>$rValue1){ 
         echo "<tr>"; 
         foreach($rValue1 as $col1 =>$cValue1) 
           echo "<td>".($cValue1+$matrix2[$row1][$col1])."</td>"; 
         echo "</tr>"; 
       } 
       echo "</table>"; 
     } 

     function multiplicaMatriz($matrix1, $matrix2){ 

      $ab = 0; 

      echo "<table border="1">"; 
       for($i = 0; $i < 3; $i++) { 
        echo "<tr>"; 
        for($j = 0; $j < 3; $j++) { 
         $ab = 0; 
         for($k = 0; $k < 3; $k++) { 
          $ab += (($matrix1[$i][$k])*($matrix2[$k][$j])); 
         } 
         echo "<td>".$ab."</td>"; 
        } 
        echo "</tr>"; 
       } 
      echo "</table>"; 
     }  


     print "<h2>Matriz 1</h2>"; 
     imprimeMatriz($m1); 

     print "<br>"; 

     print "<h2>Matriz 2</h2>"; 
     imprimeMatriz($m2); 

     print "<br>"; 

     print "<h2>Suma de matrices</h2>"; 
     sumaMatriz($m1, $m2); 

     print "<br>"; 

     print "<h2>Suma de matrices</h2>"; 
     multiplicaMatriz($m1, $m2); 

    ?> 


    </center> </body> 

</html> 
+0

代碼的其餘部分在哪裏?缺少顯示的網頁可能是由於代碼中的其他地方。 – StephenTG

+0

我剛發佈了它,@StephenTG – diegoaguilar

+1

所以,如果你切出所有的PHP,頁面顯示正常? (儘管只有一個標題)。我只是想確定它在某種程度上是功能的問題 – StephenTG

回答

2

你忘了逃避第57行的"。你可能想打開一些錯誤報告,以便你瞭解什麼導致失敗:)

error_reporting(E_ERROR | E_WARNING | E_PARSE); 

修復代碼,更改:

echo "<table border="1">"; 

到:

echo "<table border=\"1\">"; 
+0

我在哪裏可以看到錯誤報告日誌*一次*我搞砸了? – diegoaguilar

+0

如果您打開錯誤報告(在腳本的頂部添加該行),則會在頁面上看到錯誤。或者,如果你無法使用它,你可以把它全部放入一個'try ... catch'模塊並打印出你自己的錯誤。 [php錯誤處理文檔](http://php.net/manual/en/language.exceptions.php) – miah

2

迭戈,它是你真正的代碼,字節到字節,你只需要複製到一些PHP IDE,你會看到什麼問題。

function multiplicaMatriz($matrix1, $matrix2){ 
    $ab = 0; 
    echo "<table border="1">"; // <-- Look here, you messed up your quotes