数组操作

WBOY
WBOYOriginal
2016-06-23 14:14:151037Durchsuche

本帖最后由 lazygc520 于 2013-06-25 18:14:38 编辑

$sql = "select * from table where cloumn ...";
$result = mysql_query($sql);
$var = array();
while($row = mysql_fetch_array($result,MYSQL_NUM))
{
    $var[] = $row;
}

foreach($var as $v)
{
    foreach($v as $key=>$value)
    {
        echo $value.'
';
    }
}

显示结果如下:

4890//value1;

1635
624 //value2;

4890//value3;

请问怎么改能让结果变成:

4890

2249//1635+624;

4890

不能用这个方式计算,结果不对:

foreach($var as $v)
{
    foreach($v as $key=>$value)
    {
        $total += $v[$value];
        echo $total;
    }
}

结果如下:

4890

7139//4890+2249

12029//4890+2249+4890

求解决方法。

回复讨论(解决方案)

print_r($var); 是什么结果啊,或者从sql里面构造看可以不。

print_r($var); 是什么结果啊,或者从sql里面构造看可以不。

array([0]=>array([0]=>4890))

array([0]=>array([0]=>1635) [1]=>array([0]=>624))

array([0]=>array([0]=>4890))

$var 不是那个数组吧,贴错了吧?

$var 不是那个数组吧,贴错了吧?
没有啊,就是个二维数组啊。整个外面还有一个for循环我没贴出来。

while($row = mysql_fetch_array($result,MYSQL_NUM))
{
    $var[] = $row;
}
print_r($var);  

while($row = mysql_fetch_array($result,MYSQL_NUM))
{
    $var[] = $row;
}
print_r($var);  

那这样吧,就取一条记录:

array([0]=>array([0]=>1635) [1]=>array([0]=>624))

结果是这样的。

这个意思?

$ar = array(  array( 1635 ),  array( 624 ),);$res = array();foreach($ar as $item) {  foreach($item as $v) $res[] = $v;}echo array_sum($res) . '//' . join('+', $res);
2259//1635+624

你先完整打印出你的结果集 var_dump($var)

这个意思?

$ar = array(  array( 1635 ),  array( 624 ),);$res = array();foreach($ar as $item) {  foreach($item as $v) $res[] = $v;}echo array_sum($res) . '//' . join('+', $res);
2259//1635+624

非常感谢,问题已解决。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:登录页面验证~~~~ 求救Nächster Artikel:yii ,sql, 增删改查