【问题标题】:PHP multidimensional arrays accessing functionPHP多维数组访问函数
【发布时间】:2013-08-25 15:31:37
【问题描述】:

我正在尝试实现一个用于将两个数字多维数组相乘的函数,我执行了三个循环来迭代相应的行和列。但是那里有些东西失败了。

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>

【问题讨论】:

  • 其余代码在哪里?缺少显示的网页可能是由于代码中的其他地方造成的。
  • 我刚刚发布了,@StephenTG
  • 那么如果你把所有的php都删掉了,页面显示正常吗? (尽管只有一个标题)。我只是想确保它在某种程度上是函数的问题
  • 是的,是功能问题。
  • 给出了答案,一切正常:) 您只需打开 display_errors,它就会向您显示代码中的这些简单错误。

标签: php html function multidimensional-array


【解决方案1】:

Diego,这是您的真实代码,逐字节地,您只需将其复制到某个 PHP IDE 中,您就会发现问题所在。

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

【讨论】:

    【解决方案2】:

    您忘记在第 57 行转义 "。您可能想要打开一些错误报告,以便了解导致失败的原因:)

    error_reporting(E_ERROR | E_WARNING | E_PARSE);
    

    要修复代码,请更改:

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

    到:

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

    【讨论】:

    • 如果您打开错误报告(在脚本顶部添加该行),那么您将在页面上看到错误。或者,如果你不能让它工作,你可以把它全部放到一个 try...catch 块中并打印出你自己的错误。 php error handling docs
    猜你喜欢
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 2013-09-01
    相关资源
    最近更新 更多