3

これはおそらくばかげていると思いますが、解決策が見つからないことに不満を感じています。ここに行きます:私はプレーヤーを含むテーブルを持っています、私は次のような形でプレーヤーを配列に保存したいと思います:

Array ( [0] => player1 [1] => player2 [2] => player3)

以下のコードから得られるものは次のとおりです。

Array ( [0] => Array ( [player] => player1 ) [1] => Array ( [player] => player2 ) [2] =>   Array ( [player] => player3 )) 

したがって、この追加のレイヤーを、選択している列フィールドの名前である「player」という配列に入れます。コードを調整するにはどうすればよいですか?

$query_players="SELECT player FROM `whiteboard_games` WHERE id='$id'";
$result = mysql_query($query_players) or die;
$players = array();
while($row = mysql_fetch_assoc($result))
{ $players[] = $row; }

どうもありがとう!

4

3 に答える 3

6

これを処理する方法はたくさんあります。列全体を追加するのではなく、列が1つしかない場合$row、最も簡単なのは、必要な列を追加することです。

while($row = mysql_fetch_assoc($result))
{
  // Append only the `player` column rather than the whole $row (which is an array)
  $players[] = $row['player'];
}
var_dump($players);

多次元配列がすでにあり、それをフラット化する必要がある場合は、ループを使用してフラット化できます。

$players_flattened = array();
foreach ($players as $p) {
  $players_flattened[] = $p['player'];
}
// Or via array_map()
$players_flattened = array_map(function($p){ return $p['player']; }, $players);

注:$idSQLインジェクションから保護するために、クエリで既にフィルタリングと検証が行われていることを前提としています。

于 2012-11-16T16:27:47.990 に答える
1

playerキーの値のみを配列$playersに追加します。

 while($row = mysql_fetch_assoc($result)) {
   $players[] = $row['player']; 
}
于 2012-11-16T16:30:07.883 に答える
0
$players = array();
while($row = mysql_fetch_assoc($result)) 
{ 
  $players[] = $row['player'];
} 
echo "<pre>";
print_r($players);
于 2012-11-16T16:35:28.067 に答える