我试图将以下变量放入一个数组中,该数组基本上包含由空格分隔的数字列表。当我尝试应用应该工作的基本数组公式时,它会将每个单独的数字组成一个单独的数组。我如何将所有数字放入一个数组?
部分代码:
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)
答案 0 :(得分:0)
答案 1 :(得分:0)
对我而言,正如你所寻找的那样:
$projsum .= End($row);
请注意.=
表示保持projsum并添加
而end()将获得数组中的最后一项。
编辑:如果它是您阵列中的50.83,那么它会在阵列中低一级,因此您需要使用
$projsum .= End(end($row));
如果您确定数组的结构没有改变,那么它会抛出一个波动的通知但你可以用@来抑制它。