【问题标题】:php array variable not workingphp数组变量不起作用
【发布时间】:2017-08-01 19:51:53
【问题描述】:

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

部分代码:

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] => 62.92 ) 数组 ( [0] => 212.92 ) 数组 ( [0] => 238 ) 数组 ( [0] => 1 ) 数组 ( [0] => 151.58 ) 数组 ( [0] => 184.16 ) 数组 ( [0] => 713.99 ) 数组 ( [0] => 859.07 ) 数组 ( [0] => 864.32 ) 数组 ( [0] => 866.32 ) 数组 ( [0] => 897.57 ) 数组 ( [0] => 921.15 ) 数组 ( [0] => 924.15 ) 数组 ( [0] => 927.48 ) 数组 ( [0] => 944.15 ) 数组 ( [0] => 11 ) 数组 ( [ 0] => 50.83)

【问题讨论】:

  • 向我们展示变量的实际内容,而不是它的设置方式。您提供给我们的代码对于对您的项目一无所知的任何人(包括本网站上的所有人)都毫无意义
  • @GrumpyCrouton 这里是我尝试对变量使用explode 时的样子:它显示了单个数组中的所有数字:Array ([0] => 62.92) Array ([0] = > 212.92 ) 数组 ( [0] => 238 ) 数组 ( [0] => 1 ) 数组 ( [0] => 151.58 ) 数组 ( [0] => 184.16 ) 数组 ( [0] => 713.99 ) 数组 ( [0] => 859.07 ) 数组 ( [0] => 864.32 ) 数组 ( [0] => 866.32 ) 数组 ( [0] => 897.57 ) 数组 ( [0] => 921.15 ) 数组 ( [0] => 924.15 ) 数组 ( [0] => 927.48 ) 数组 ( [0] => 944.15 ) 数组 ( [0] => 11 ) 数组 ( [0] => 50.83 )
  • 用一些格式将其粘贴到问题中。
  • 你想得到 50.83 吗?
  • 我们缺少太多信息。 $row 是什么?它是如何格式化的? $projsum 的初始条件是什么?我们需要 (a) 整个相关代码块,(b) 以及您的预期结果。

标签: php arrays


【解决方案1】:

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

请查看the documentation 了解此事。

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

【讨论】:

  • 这是我厌倦的,它将每个数字放入单独的数组而不是一个单独的数组中
  • 你能回答上面发布的问题吗?
  • @user8345269 这没有意义,explode() 不能制作多个数组
  • 当我使用 $projsum_array = explode(" ", $projsum);它显示了这个数组 ( [0] => 62.92 ) 数组 ( [0] => 212.92 ) 数组 ( [0] => 238 ) 数组 ( [0] => 1 ) 数组 ( [0] => 151.58 ) 数组 ( [0] => 184.16 ) 数组 ( [0] => 713.99 ) 数组 ( [0] => 859.07 ) 数组 ( [0] => 864.32 ) 数组 ( [0] => 866.32 ) 数组 ( [0] => 897.57 ) 数组 ( [0] => 921.15 ) 数组 ( [0] => 924.15 ) 数组 ( [0] => 927.48 ) 数组 ( [0] => 944.15 ) 数组 ( [0] => 11 ) 数组 ( [ 0] => 50.83)
  • @user8345269 什么是 $projsum 在你爆炸之前?
【解决方案2】:

在我看来,您正在寻找的是:

$projsum .=  End($row);

注意.= 表示保留项目并添加。
end() 将获取数组中的最后一项。

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

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

它会抛出一个警告,但如果你确定数组的结构没有改变,你可以用@来抑制它。

【讨论】:

  • 最终,是的,我想获得 $projsum 变量的最后一个数字,在回显的那一刻是一个数字列表。但是,如上所示,我似乎无法将它放入单个数组中。我尝试了你的方法,但是当我回显变量来检查它时什么都没有出现
  • 请参阅此处,了解您的阵列的较小版本。它似乎工作。 3v4l.org/A0su0 还是我看错了你的数组?
  • 我试过了,它把每个单独的数字放入 float(#) 等等
  • 什么?我不明白。
  • 使用 Var_dump($projsum);回声@end(end($projsum));现在看起来像这样:float(62.92)float(212.92)float(238)float(1)float(151.58)float(184.16)float(713.99)float(859.07)float(864.32)float(866.32)float(897.57)浮动(921.15)浮动(924.15)浮动(927.48)浮动(944.15)浮动(11)浮动(50.83)浮动(56.83)浮动(58.16)浮动(8)浮动(9)浮动(10)浮动(19.83)浮动( 4.5) 浮动(5) 浮动(26.5) 浮动(27.5) 浮动(57.25) 浮动(58.25)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-22
  • 2013-11-10
  • 2015-09-30
相关资源
最近更新 更多