$universe = $_SESSION["company"];
$sql = "SELECT manufacturer FROM spaceships WHERE `$universe` = 1";
$companyListQuery = $db->prepare($sql);
$companyListQuery->execute();
$companyList = $companyListQuery->fetchAll();
$companyList = array_unique($companyList);
foreach($companyList as $row){
$selected = $row["manufacturer"];
echo '<tr>';
echo '<td class="table">'.$row["manufacturer"].'</td>';
}
所以这给了我一个通知,说有一个数组到字符串转换。但据我所知fetchAll()返回一个数组,所以我不确定为什么会这样说?感谢帮助。
答案 0 :(得分:4)
array_unique比较(字符串)$ a ==(字符串)$ b。您的数组是一个数组数组,因此每个元素都转换为数组。有通知(array_unique适用于标量)
官方文档:注意:请注意,array_unique()不适用于多维数组。
答案 1 :(得分:1)
Luis Masuelli的答案对于这个问题是正确的,但是如果您想要使用DISTINCT
$sql = "SELECT DISTINCT manufacturer FROM spaceships WHERE `$universe` = 1";
如果您不使用数据库,或者将来在PHP中执行此操作:
$companyList = array_map('unserialize', array_unique(array_map('serialize', $companyList)));