在数组的每个位置获取数组函数加倍值?

Posted

技术标签:

【中文标题】在数组的每个位置获取数组函数加倍值?【英文标题】:Fetch array function doubling values in each position of array? 【发布时间】:2012-10-06 23:31:37 【问题描述】:

我从这个函数中得到了奇怪的行为。

输入

    public function fetch_array($result_set) 

        $rows = array();
        while ($row = mysql_fetch_array($result_set)) 
        
            $rows[] = $row;
            print_r($row);
            break;
        
        return $rows;


我已经让函数运行了一次,但它从我的 MySQL 查询结果中复制了一行。

输出

Array ( [0] => Sarah [first_name] => Sarah [1] => Palin [second_name] => Palin ) 

应该是

正确输出

Array ( [first_name] => Sarah [second_name] => Palin ) 

我使用了这个 SO 问题示例

Use mysql_fetch_array() with foreach() instead of while()

不是我的查询或Mysql结果错误

http://i.imgur.com/CZnIF.png


这里出了什么问题?

【问题讨论】:

$rows 数组与mysql_fetch_array 返回的$row 数组完全相同。那么,为什么不在获取它之后返回 $row 呢?附带说明:不要使用mysql_ 函数。它们很快就会从 php 中删除。并使用mysql_fetch_assoc 而不是mysql_fetch_array 技术上不一样,它是一个包含 $row 数组的数组,但你的观点是有效的。 【参考方案1】:

这不是错误,这是 mysql_fetch_array() http://us.php.net/manual/en/function.mysql-fetch-array.php 的预期行为

您可以设置result_type 标志,也可以只使用mysql_fetch_assoc()。 http://us.php.net/manual/en/function.mysql-fetch-assoc.php

【讨论】:

当然,只需将$row = mysql_fetch_array($result_set) 替换为$row = mysql_fetch_assoc($result_set)【参考方案2】:

当使用 mysql_fetch_array 时,向它提供 MYSQL_ASSOC 标志。

编辑:这是您的代码,进行了适当的更改

while ($row = mysql_fetch_array($result_set, MYSQL_ASSOC)) 

此外,您可以通过输入 MYSQL_NUM 来仅使用数字索引来获取它们

【讨论】:

【参考方案3】:

您得到一个结果并想要另一个结果的原因是因为您将一个数组($row)推入一个新数组($rows)中。通过在数组中推入一些东西(你使用的括号),你会得到一个自动递增的键。

【讨论】:

【参考方案4】:

试试这个:

$rows['name'] = $row['name'];
$rows['second_name] = $row['second_name'];

...

而不是

$rows[] = $row;

【讨论】:

谢谢,但是如果我想将此功能与其他数据一起使用,我认为这不会起作用【参考方案5】:

默认情况下,mysql_fetch_array 的每个数据库列都有两个键——一个是数字键,一个是关联键。 你可以这样做来告诉它只获取数字键:

mysql_fetch_array($result, MYSQL_NUM);

http://us2.php.net/manual/en/function.mysql-fetch-array.php

【讨论】:

【参考方案6】:

这是完全正常和预期的行为。如果您只想要关联数组,请使用

while ($row = mysql_fetch_array($result_set, MYSQL_ASSOC)) 

【讨论】:

以上是关于在数组的每个位置获取数组函数加倍值?的主要内容,如果未能解决你的问题,请参考以下文章

PHP获取数组中奇偶数

PHP获取数组中奇偶数

PHP获取数组中奇偶数

数组常见方法下

VB 数组中如何根据值返回元素的位置索引值

将多维数组中的元素相乘