如何使用Php合并PDO Mysql阵列数据

如何使用Php合并PDO Mysql阵列数据

问题描述:

我需要将类别和子类别合并到一个数组中。这是代码。如何使用Php合并PDO Mysql阵列数据

$sql = 'select * from category where id = ?'; 
$q = $db->prepare($sql); 
$q->bindParam(1, $id); 
$q->execute(); 
while($rows = $q->fetch()){ 
    $cat[] = $rows['id']; 
    $s = 'select * from category where category_id = ?'; 
    $q = $db->prepare($s); 
    $q->bindParam(1, $rows['id']); 
    $q->execute(); 
    while($row = $q->fetch()){ 
     $list[] = $row['id']; 
    } 

    $data = array_push($cat, $list); 

    echo $data; 

} 

打印时代替IDS数字

+1

你能不能把你得到什么,你希望什么帮助? –

+0

这里最好粘贴表格的结构。 –

+0

不要使用'array_push',因为某些原因它会添加值。你想要一个具有所有值的数组是什么?示例:'$ array1 [] = 1; $ array2 [] = 1; echo array_push($ array1,$ array2);' – chris85

是要合并$猫和$列表我得到2值?

你可以试试:

array_merge($cat, $list); 
+0

尝试数组到字符串转换错误来 –

我想你想要的是这样的:

$sql = 'select * from category where id = ?'; 
$q = $db->prepare($sql); 
$q->bindParam(1, $id); 
$q->execute(); 
$data = array(); 
while($rows = $q->fetch()){ 
    $cat[] = $rows['id']; 
    $s = 'select * from category where category_id = ?'; 
    $q = $db->prepare($s); 
    $q->bindParam(1, $rows['id']); 
    $q->execute(); 
    while($row = $q->fetch()){ 
    $list[] = $row['id']; 
    } 

    $data = array_merge($data, $cat, $list); 
    //$data = array_unique($data); 

    print_r($data); 

} 

通知的$data = array(); while循环之前。使用array_merge,您可以将具有$ data数组的类别和子类别合并到数据数组中。

如果您碰巧得到重复的值,您不需要或不需要,只需取消注释$data = array_unique($data);,它会为您擦除重复的条目。

请澄清你的问题,如果我不解决你的问题,我会更新我的答案。

玩得开心,可能源于你。

+0

感谢您的回复。我已经尝试过你的解决方案错误,因为'echo $ data'($ data是一个数组,echo是用于回显字符串)的字符串转换 –

+0

,应该是print_r($ data)或类似的。 – mondjunge

我解决了这个问题,这个帖子combine-results-from-two-pdo-queries

$id = '1'; 
$results = array(); 
$sql = 'select * from category where id = ?'; 
    $q = $db->prepare($sql); 
    $q->bindParam(1, $id); 
    $q->execute(); 
    while($rows = $q->fetch(PDO::FETCH_ASSOC)){ 
     $results[] = $rows['id']; 
    } 
    $s = 'select * from category where category_id = ?'; 
    $q = $db->prepare($s); 
    $q->bindParam(1, $id); 
    $q->execute(); 
    while($row = $q->fetch(PDO::FETCH_ASSOC)){ 
    $results[] = $row['id']; 
    } 

    var_dump($results);