Count()返回的条目数不同于var_dump()

时间:2012-04-13 12:25:04

标签: php count

嘿伙计们我累了,无法想出这个,所以任何帮助都会受到赞赏。

我从数据库表中获得了一个名为$ Row的数组。

当我运行var_dump($Row);时,我得到以下内容:

array
  0 => string '1' (length=1)
  'id' => string '1' (length=1)
  1 => string 'erik' (length=4)
  'username' => string 'erik' (length=4)
  2 => string 'd95eb19a15301089985ad6fd6ecbf2d7' (length=32)
  'password' => string 'd95eb19a15301089985ad6fd6ecbf2d7' (length=32)
  3 => string '' (length=0)
  'email' => string '' (length=0)
  4 => string '0' (length=1)
  'date_join' => string '0' (length=1)
  5 => string '0' (length=1)
  'date_mod' => string '0' (length=1)
  6 => string '1' (length=1)
  'active' => string '1' (length=1)
  7 => string '1' (length=1)
  'admin' => string '1' (length=1)
  8 => string '0' (length=1)
  'deleted' => string '0' (length=1)

当我运行echo count($Row);时,我获得了值18

Count和var_dump彼此相邻,没有修改$ Row。

问题:当Count()显示的$ Row中只有8var_dump()时,为什么count()会返回18?我想我只是不理解array 0 => string '1' (length=1) 1 => string 'erik' (length=4) 2 => string 'd95eb19a15301089985ad6fd6ecbf2d7' (length=32) 3 => string '' (length=0) 4 => string '0' (length=1) 5 => string '0' (length=1) 6 => string '1' (length=1) 7 => string '1' (length=1) 8 => string '0' (length=1) ...我查了http://php.net/manual/en/function.count.php,但仍然没有理解......

编辑:我知道什么是错的知道,谢谢大家。另一个问题。如何删除字符串中的字符串,例如我想要这种表:

{{1}}

* 我正在使用mysql_fetch_array()来检索数据并将其放入表中。

5 个答案:

答案 0 :(得分:2)

你有混合数组整数和关联,并有18个元素。我认为这是从mysql_fetch_array返回的,默认情况下返回关联和数字索引数组。

答案 1 :(得分:1)

因为你的字符串也是$Row中的值,所以它们似乎因为字符串char而缩进。 这意味着

'id' => string '1' (length=1)
'username' => string 'erik' (length=4)
'password' => string 'd95eb19a15301089985ad6fd6ecbf2d7' (length=32)
// ...

也在您的数组中

答案 2 :(得分:1)

实际上,你的数组确实有18个元素:

  • 指数08(总共9个元素)
  • idusername,...另外9个元素

9 + 9 = 18

如果您只想要数字索引,并假设您正在使用MySQL:

$Row = mysql_fetch_array($result, MYSQL_NUM)

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

答案 3 :(得分:1)

因为你正在从你的数据库中获取一个关联和数字结果集的混合(你可以使用FETCH_ASSOC或类似的函数精确地确定哪一个你的dbvendor_query()函数)。

阵列中有18个元素。

答案 4 :(得分:1)

我认为应用计数:

0 => string '1' (length=1)
'id' => string '1' (length=1)

返回2而不是1!

0和id是数组的两个不同项! 这取其他8个元素使计数返回18