1

我有一个通过框架(WolfCMS)进行的 MYSQL 查询。

$sql_query = 'SELECT DISTINCT country FROM ' . $tableName . ' ORDER BY country ASC';
$countries = Record::query($sql_query, array()); //execute query

但是返回的是这样的对象数组

Array ( [0] => stdClass Object ( 
        [country] => Canada ) [1] => stdClass Object ( 
        [country] => France ) )

我想知道 php 是否有办法合并所有对象以使数组尽可能简单,例如

Array ( [0] => Canada  [1]  => France )

我知道foreach一旦我获得数据并按照我需要的方式创建自定义数组,我总是可以使用循环解析数组,但我想知道是否有办法直接从数据库中获取数据到它的最终形式。

我只想要一个简单的数组将其用作文本字段上自动完成功能的参数。

* 编辑 *

我找到了更好的方法。我只需要避免使用 Record 类执行查询。

就是这样

//create sql statement
$sql_query = 'SELECT DISTINCT country' . 
            ' FROM ' . Record::tableNameFromClassName(__CLASS__) . 
            ' ORDER BY country ASC';
$stmt = Record::getConnection()->prepare($sql_query);
$stmt->execute(array());
return $stmt->fetchAll(Record::FETCH_COLUMN);
4

2 回答 2

1

您将无法仅通过 WolfCMS 中的查询来实现此目的。你应该试试:

$finalArr = array();
for($i=0; $i<sizeof($result);$i++) // $result being your query result
    array_push($finalArr,$result[$i]->country);

print_r($finalArr);
于 2013-07-31T13:48:19.490 回答
1

你试过array_map吗?

$countries = array_map(function ($item) { return $item->country; }, $result );
于 2013-07-31T14:18:43.520 回答