PHP获取全部到数组

PHP获取全部到数组,php,Php,我试图从fetchAll中获取一个结果,获取一些数据并将其放入一个数组中 相关PHP: $catcodessql = "select distinct cat_code from mytable"; $result2 = $dbh->query($catcodessql)->fetchAll(PDO::FETCH_ASSOC); 这将返回如下结果: array(4) { [0]=> array(1) { ["cat_code"]=> string(3) "e

我试图从fetchAll中获取一个结果,获取一些数据并将其放入一个数组中

相关PHP:

  $catcodessql = "select distinct cat_code from mytable";
  $result2 = $dbh->query($catcodessql)->fetchAll(PDO::FETCH_ASSOC); 
这将返回如下结果:

array(4) {
 [0]=>
array(1) {
["cat_code"]=>
string(3) "edu"
 }
 [1]=>
 array(1) {
["cat_code"]=>
string(3) "inc"
}
[2]=>
array(1) {
["cat_code"]=>
string(3) "net"
 }
[3]=>
 array(1) {
["cat_code"]=>
string(3) "occ"
}
我想要的是所有这些字符串,这样我可以在以后的PHP中动态地组合这一行:

$allcategories = array ('edu', 'inc', 'net', 'occ' );
因此,我需要创建一个变量来替换这个部分:
'edu','inc','net','occ'


我尝试了几个
while
函数,但显然它们不正确。

PHP>=5.5.0是
array\u column()
所需的,或者使用

查询上的
foreach

foreach($dbh->query($catcodessql) as $row) {
    $allcategories = $row['cat_code'];
}

如果您只想检索唯一的类别,可以通过查询直接检索:

$stmt = $dbh->prepare("select GROUP_CONCAT( cat_code SEPARATOR ',') as cat_code from ( select distinct cat_code from mytable) as m"); 
$stmt->execute(); 
$row = $stmt->fetch();
$categories = explode(",",$row["cat_code"]);
var_dump($categories);

如果你使用PHP+5.5,那么你可能想研究一下:你只想要这个数组吗
$allcategories=array('edu','inc','net','occ')
?@acontell是的,这就是我想在下面检查我的答案的原因,我想如果他在数组中只有这个列,他也可以使用这个:
打印(数组)键(调用用户函数数组('array\u merge',array\u map(“array\u flip”,$arr)));
:D但我知道你喜欢
array\u column()
,所以+1我认为我没有正确实现你的建议。我正在尝试:
$catcodesql=“从我的表中选择不同的cat\u代码”;$dbh->query($catcodesql);而($row=$dbh->fetch fetch(PDO::fetch ASSOC)){$allcategories=$row['cat_code'];}
这是对的还是我遗漏了什么?这返回了一个500错误。我不知道500,很少使用
query
,但是用
foreach
检查编辑。这导致了与我以前大致相同的结果:
数组(36){[0]=>string(3)“edu”[1]=>string(3)“inc”[2]=>string(3)“net”[3]=>string(3)“occ”[4]=>
这不是你想要的吗?理想情况下,我想要的格式正好是:
('edu','inc','net','occ'))
。我似乎无法从返回到数组的数组中获得另一个函数,它只需要这个逗号分隔的列表。我的意思是,你需要一个字符串?等等……我的错误。我实际上不需要任何进一步的处理。我能够准确地获取你拥有的内容并将其放入我的函数中。因此,这毕竟非常有效。t汉克斯!
$stmt = $dbh->prepare("select GROUP_CONCAT( cat_code SEPARATOR ',') as cat_code from ( select distinct cat_code from mytable) as m"); 
$stmt->execute(); 
$row = $stmt->fetch();
$categories = explode(",",$row["cat_code"]);
var_dump($categories);