php - 合并多个对象

标签 php mysql arrays object

我有一个通过框架 (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);

最佳答案

你试过array_map吗?

$countries = array_map(function ($item) { return $item->country; }, $result );

关于php - 合并多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17972169/

相关文章:

c++ - 在计算 C++ 的行数时从文件读入字符串

php - 将 PHP Curl 查询转换为 Python 请求

php - Laravel - 视频文件验证

php - 如何在 PHP 中使用 while 循环按 ID 列出节中的数据?

arrays - 如何对结构数组进行排序

c++ - 指针数组段错误

php - 使用 jquery 将多个复选框的值添加到数据库中的同一行

php - $db->fetchAll($query) 非关联 for 循环遍历列

php - 导航列表重复

php - Node.js在没有任何操作的情况下被mysql自动崩溃