【问题标题】:PHP Array duplicates: every string key has numeric keyPHP数组重复:每个字符串键都有数字键
【发布时间】:2017-07-28 22:14:52
【问题描述】:

我正在尝试从 MS-SQL 查询中获取一个包含 utf-8 值的数组。

几乎一切正常,除了结果数组如下所示:

Array (
 [id] => 1;
 [0] => 1; // this is redundant
 [countryName] => england;
 [1] => england; // this is redundant
)

我不想要重复的数字键。为什么它们甚至被创造出来?导致此结果的代码是:

# execute the query
foreach ($pdoConnection->query($sqlStatement) as $row) {
   // encode row in utf8 so json works and save row in array
   $output[] = array_map('utf8_encode', $row);
}

感谢您知道如何解决这个问题。

【问题讨论】:

  • 尝试var_dump 行,看看里面有什么

标签: php arrays sql-server json pdo


【解决方案1】:

您需要以associative 获取。按照这个例子:

$stmt = $this->db->prepare('SELECT title, FMarticle_id FROM articles WHERE domain_name =:domain_name');
$stmt->bindValue(':domain_name', $domain);
$stmt->execute();
$article_list = $stmt->fetchAll(PDO::FETCH_ASSOC);

参考:PDOStatement::fetchAll

【讨论】:

    【解决方案2】:

    尝试替换此行,

    foreach ($pdoConnection->query($sqlStatement, PDO::FETCH_ASSOC) as $row)
    

    该标志用于获取关联记录。

    【讨论】:

      猜你喜欢
      • 2012-07-15
      • 1970-01-01
      • 2012-06-29
      • 2021-02-07
      • 2021-08-11
      • 1970-01-01
      • 2018-03-06
      • 2019-03-02
      • 1970-01-01
      相关资源
      最近更新 更多