我正在使用如下的PDO语句
$sql1 = "select food_typename from foodtypes WHERE 1";
$statement1 = $pdo->prepare($sql1);
$statement1->execute();
$results1 = $statement1->fetchAll(PDO::FETCH_ASSOC);
print_r($results1);
我的输出如下:
Array
(
[0] => Array
(
[food_typename] => Punjabi
)
[1] => Array
(
[food_typename] => Indian
)
)
我希望它像
Array('Punjabi','Indian')
有什么建议吗?
答案 0 :(得分:2)
如果你正在运行PHP> = 5.5
$results = array_column($results1, 'food_typename');
如果您运行的是早期版本的PHP,
$results = array_map(
$results1,
function($value) {
return $value['food_typename'];
}
);
虽然我真的不明白为什么你不能在第一时间使用原始阵列
答案 1 :(得分:0)
您可以使用array_map
,但foreach
同样适用,实际运行速度比array_map
更快,对于以下情况:
// Set a test array.
$results1 = array();
$results1[] = array('food_typename' => 'Punjabi');
$results1[] = array('food_typename' => 'Indian');
// Set the final reults in an array.
$results_final = array();
foreach ($results1 as $results1_value) {
$results_final[] = $results1_value['food_typename'];
}
// Dump the line array for debugging.
echo '<pre>';
print_r($results_final);
echo '</pre>';
输出结果如下:
Array
(
[0] => Punjabi
[1] => Indian
)
答案 2 :(得分:0)
查询方式:
SELECT GROUP_CONCAT(food_typename), 1 AS dummy
FROM foodtypes
GROUP BY dummy
然后你需要检索你将从mysql返回的唯一记录的第一个字段,然后把它变成一个数组:见return group_concat data as array