Php 将结果从PDO::fetchAll()转换为数组
我有一个数据库中的姓名列表 我正在尝试转换来自PDO::fetchAll函数的结果,以获得类似字符串的结果: 名称1、名称2、名称3等 我不知道你是否明白我的意思Php 将结果从PDO::fetchAll()转换为数组,php,database,arrays,string,pdo,Php,Database,Arrays,String,Pdo,我有一个数据库中的姓名列表 我正在尝试转换来自PDO::fetchAll函数的结果,以获得类似字符串的结果: 名称1、名称2、名称3等 我不知道你是否明白我的意思 谢谢大家的帮助 发现这个,天知道在哪里,很久以前就完成了这个任务。我希望您觉得这对您有所帮助: /** * Formats a line (passed as a fields array) as CSV and returns the CSV as a string. * Adapted from http://us3.
谢谢大家的帮助 发现这个,天知道在哪里,很久以前就完成了这个任务。我希望您觉得这对您有所帮助:
/**
* Formats a line (passed as a fields array) as CSV and returns the CSV as a string.
* Adapted from http://us3.php.net/manual/en/function.fputcsv.php#87120
*/
function arrayToCsv( array &$fields, $delimiter = ';', $enclosure = '"', $encloseAll = false, $nullToMysqlNull = false ) {
$delimiter_esc = preg_quote($delimiter, '/');
$enclosure_esc = preg_quote($enclosure, '/');
$output = array();
foreach ( $fields as $field ) {
if ($field === null && $nullToMysqlNull) {
$output[] = 'NULL';
continue;
}
// Enclose fields containing $delimiter, $enclosure or whitespace
if ( $encloseAll || preg_match( "/(?:${delimiter_esc}|${enclosure_esc}|\s)/", $field ) ) {
$output[] = $enclosure . str_replace($enclosure, $enclosure . $enclosure, $field) . $enclosure;
}
else {
$output[] = $field;
}
}
return implode( $delimiter, $output );
}
手册页面包含的代码可以让您获得易于内爆的一维数组
$result = $sth->fetchAll(PDO::FETCH_COLUMN, 0);
您还可以使用Mysql的group_concat函数从SQL中获取字符串
但是,了解数据的目的地是至关重要的。请提供查询的示例输出,无论如何,您将使用一个好的ol'内爆函数。请编辑您的问题以包括代码的相关部分,以便有人可以帮助您。此名称1、名称2、名称的目的地是什么,名称3字符串?你当然只是猜测OP对CSV输出感兴趣…他是这么说的,decezeCtrl+F,CSV。。。您的答案是本页唯一提到CSV的内容。。。?!引用OP是因为有人显然没有读到:我正在尝试转换来自PDO::fetchAll函数的结果,以获得类似字符串的结果:name1、name2、name3等等。在我看来,这看起来像CSV。它看起来像CSV,但OP可能只是想要一个一维数组……太完美了,非常感谢!请注意,FETCH_COLUMN实际上只获取1列,即使SQL语句本身可能每行返回多个列