数组操作

WBOY
WBOYOriginal
2016-06-23 14:14:151034browse

本帖最后由 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

非常感谢,问题已解决。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:登录页面验证~~~~ 求救Next article:yii ,sql, 增删改查