0

嘿伙计们,我很累,无法弄清楚这一点,因此我们将不胜感激。

我有一个从数据库表中获取的名为 $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 没有修改。

问题:为什么在 $Row 中Count()只有一个时返回 18 输入?我想我只是不明白......我检查了http://php.net/manual/en/function.count.php,但仍然不明白......8var_dump()count()

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

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)

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

4

5 回答 5

2

您有混合数组整数和关联数组,并且有 18 个元素。这是我认为mysql_fetch_array默认返回关联和数字索引数组的返回值。

于 2012-04-13T12:29:40.157 回答
1

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

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

也在你的阵列中

于 2012-04-13T12:26:46.757 回答
1

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

  • 索引0通过8(总共 9 个元素)
  • id, username, ... 另外 9 个元素

9 + 9 = 18

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

$Row = mysql_fetch_array($result, MYSQL_NUM)

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

于 2012-04-13T12:28:53.073 回答
1

因为你从你的数据库中得到了一个混合的关联和数字结果集(你可以用 FETCH_ASSOC 或类似的东西作为你 dbvendor_query() 函数的参数来精确地确定你真正想要的结果集)。

您的数组中有 18 个元素。

于 2012-04-13T12:29:16.630 回答
1

我认为将计数应用于此:

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

返回 2 而不是 1!

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

于 2012-04-13T12:29:25.240 回答