我需要将类别和子类别合并为一个数组。这是代码。
$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;
}
我在打印时获得2个值而不是数字
答案 0 :(得分:0)
你想合并$ cat和$ list吗?
您可以尝试:
array_merge($cat, $list);
答案 1 :(得分: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);
}
注意while循环之前的$data = array();
。使用array_merge
,您可以将类别和子类别与$ data数组合并到数据数组中。
如果您碰巧获得了重复值,则不需要或只需要注释$data = array_unique($data);
,它会为您删除重复的条目。
请澄清您的问题,如果我不解决您的问题,我会更新我的答案。
玩得开心,可能有消息来源。
答案 2 :(得分:0)
我在这篇文章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);