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);と value が得られます18

Count と var_dump は隣り合っており、$Row の変更はありません。

質問:で示される $Row 内に 18 個の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ため、文字列charのためにインデントされているように見えます。つまり、

'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 要素)
  • idusername、 ... 別の 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)

1 ではなく 2 を返します!

0 と id は、配列の 2 つの異なる項目です! これは、他の 8 要素に適用され、カウントは 18 を返します。

于 2012-04-13T12:29:25.240 に答える