php数组变量不起作用

时间:2017-08-01 19:51:53

标签: php arrays

我试图将以下变量放入一个数组中,该数组基本上包含由空格分隔的数字列表。当我尝试应用应该工作的基本数组公式时,它会将每个单独的数字组成一个单独的数组。我如何将所有数字放入一个数组?

部分代码:

echo "<h2>Table:</h2>";
echo "<table border='1'><tr>";
// printing table headers
for($i = 0; $i < $fields_num; $i++) {
    $field = mysql_fetch_field($result);
    echo "<td><b>{$field->name}</b></td>";
}

echo "</tr>\n";

// printing table rows
$rn = 0;
$projsum = 0;

while($row = mysql_fetch_row($result)) {
    $rn = $rn + 1;
    if($rn == 1) {
        $presproj = $row[0];
        $projrow = 1;
    }
    if($row[0] != $rowm1[0]) { // if present row col 1 differs from Previous  
        $col = 0;
        echo "<tr>";
        foreach($rowm1 as $cell) {
            $col = $col + 1;
            if($col == 1) {
                echo "<td><small>Total</small></td>";
            } elseif($col < count($rowm1)) {
                echo "<td><small></small></td>";

            } else {
                echo "<td><small>";
                echo $projsum;
                echo "</small></td>";
                $projsum = 0;

            }
            $projrow = 1;

        }
        echo "</tr>\n";

    }

    echo "<tr>";
    // $row is array... foreach( .. ) puts every element
    // of $row to $cell variable
    $it = 0;
    foreach($row as $cell) {
        $it = $it + 1;
        if(($it == 1) && ($projrow != 1)) {
            echo "<td><small></small></td>";
        } else {
            echo "<td><small>" . $cell . "</small></td>";
        }
    }
    echo "</tr>\n";

    $rowm1 = $row;
    $projrow = $projrow + 1;
    $projsum = $projsum + $row[count($row) - 1];
    $sample .= End(end($row));
    echo $sample;

}

mysql_free_result($result);

变量:

$projsum=$projsum + $row[count($row)-1];

使用explode创建数组会创建以下内容: $ projsum_array = explode(“”,$ projsum);

数组([0] =&gt; 62.92)数组([0] =&gt; 212.92)数组([0] =&gt; 238)数组([0] =&gt; 1)数组([0] =&gt; ; 151.58)数组([0] =&gt; 184.16)数组([0] =&gt; 713.99)数组([0] =&gt; 859.07)数组([0] =&gt; 864.32)数组([0] =&gt; ; 866.32)数组([0] =&gt; 897.57)数组([0] =&gt; 921.15)数组([0] =&gt; 924.15)数组([0] =&gt; 927.48)数组([0] =&gt; ; 944.15)数组([0] =&gt; 11)数组([0] =&gt; 50.83)

2 个答案:

答案 0 :(得分:0)

如果要将字符串拆分为数组,可以使用explode()

请检查the documentation

$projsum_array = explode(" ", $projsum);

答案 1 :(得分:0)

对我而言,正如你所寻找的那样:

$projsum .=  End($row);

请注意.=表示保持projsum并添加 而end()将获得数组中的最后一项。

编辑:如果它是您阵列中的50.83,那么它会在阵列中低一级,因此您需要使用

$projsum .=  End(end($row));

如果您确定数组的结构没有改变,那么它会抛出一个波动的通知但你可以用@来抑制它。