合并多个对象

时间:2013-07-31 13:45:12

标签: php mysql arrays object

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

$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);

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

你试过array_map吗?

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