Php 将sql查询转换为数组

Php 将sql查询转换为数组,php,mysql,arrays,split,Php,Mysql,Arrays,Split,我已经尝试了好几天,将我的查询行设置为数组,但还没有成功。 我在mysql行中有'cat.1'、'cat.2'、'cat.3'、'cat.4'、'cat.5'、'cat.1'、'cat.2'、'cat.3'、'cat.4'、'cat.5',希望将其作为数组,所以我将得到10个数组而不是1个数组。 接下来,我将使用它与具有相同模式的另一行组合。像这个0,0,1,1,0,0,1,1,1,0 while($row = $result->fetch_array(MYSQLI_ASSOC))

我已经尝试了好几天,将我的查询行设置为数组,但还没有成功。 我在mysql行中有'cat.1'、'cat.2'、'cat.3'、'cat.4'、'cat.5'、'cat.1'、'cat.2'、'cat.3'、'cat.4'、'cat.5',希望将其作为数组,所以我将得到10个数组而不是1个数组。 接下来,我将使用它与具有相同模式的另一行组合。像这个0,0,1,1,0,0,1,1,1,0

while($row = $result->fetch_array(MYSQLI_ASSOC))  
  {  
    $keys = Array($row['listcat']);
    $values = Array($row['rightval']);
    $final_array [$row['testid']]= array_combine_($keys, $values);
  }
我的函数数组\u combine\u我从

我总是得到一个数组而不是十个,所以不能将两个数组合并。我想要的结果是这样的

[8131] => Array ( 
  [cat.1] => Array ( [0] => 0 [1] => 0 ) 
  [cat.2] => Array ( [0] => 0 [1] => 1 ) 
  [cat.3] => Array ( [0] => 1 [1] => 1 ) 
  [cat.4] => Array ( [0] => 1 [1] => 1 ) 
  [cat.5] => Array ( [0] => 0 [1] => 0 ) 
)
[8173] => Array ( 
  [cat.1] => Array ( [0] => 0 [1] => 0 ) 
  [cat.2] => Array ( [0] => 0 [1] => 1 ) 
  [cat.3] => Array ( [0] => 1 [1] => 1 )
  [cat.4] => Array ( [0] => 1 [1] => 1 ) 
  [cat.5] => Array ( [0] => 0 [1] => 0 ) 
)
Array($row['listkd'])
不会将字符串作为单独的数组元素进行分析。它只创建一个包含单个元素的数组,该元素是
listkd
列的全部内容

您可以使用
str\u getcsv()
来解析字符串。它将在逗号上拆分,并将引号作为值周围的分隔符进行解析

while($row = $result->fetch_array(MYSQLI_ASSOC))  
  {  
    $keys = str_getcsv($row['listkd'], ",", "'");
    $values = str_getcsv($row['rightval'], ",", "'");

    $final_array [$row['testnis']]= array_combine_($keys, $values);
  }

在哪里使用
数组([0]=>0[1]=>0)
,等等。?我看到的是非常糟糕的SQL表模式,您可以将一行变量转储并显示该行的输出作为示例,以便我们可以确定表中有什么?你能举一个你现在得到的输出的例子,而不是你想要得到的吗?(很抱歉,一开始是倒过来的)谢谢你的评论,我用这个来做我的简单方法。'var_dump($keys)=“'KD.1'、'KD.2'、'KD.3'、'KD.4'、'KD.5'、'KD.1'、'KD.2'、'KD.3'、'KD.4'”我希望你的意思是“列”,而不是“行”!:-(他可以用它来解析CSV字符串——它会一次去掉所有引号、分隔符并创建一个数组。@ReddHerring好主意,没有想到这个快捷方式。
while($row = $result->fetch_array(MYSQLI_ASSOC))  
  {  
    $keys = str_getcsv($row['listkd'], ",", "'");
    $values = str_getcsv($row['rightval'], ",", "'");

    $final_array [$row['testnis']]= array_combine_($keys, $values);
  }