从 PHP 数组中删除重复值
Remove duplicate value from PHP Array
我有这个代码
<?php
$query1 = "SELECT users.id,
testtable_result.id as result_id,
testtable_result.user_id,
testtable_result.cad_id,
testtable_result.medication,
testtable_result.color,
testtable_category.category_id,
testtable_category.name
FROM users
INNER JOIN testtable_result
ON testtable_result.user_id=users.id
INNER JOIN testtable_category
ON testtable_result.cad_id=testtable_category.category_id
WHERE users.id = '{$userID}' AND color LIKE '%blue%';";
$result1 = query($query1);
confirm($result1);
if (row_count($result1) > 0) :
while($row1 = fetch_Array($result1)) {
$medication = $row1['medication'];
$data[] = $row1;
}
foreach ($data as $value) {
$categoryname = $value['name'];
$medication = $value['medication'];
$arrmaincatname = explode('(', rtrim($categoryname, ')'));
if($categoryname == "Saba"){
$datacat = $arrmaincatname[0];
$medicacat = $medication; ?>
In <?php echo $datacat; ?> category -- [<?php echo $medicacat ?>]
<?php
}} ?>
它显示这样的结果
在 Saba 类别中 -- [ProAir RespiClick®] 在 Saba 类别中 -- [Proventil® HFA]
我想去掉所有重复的结果,想这样显示。
在 Saba 类别中 -- [ProAir RespiClick®, Proventil® HFA]
您可以使用一个 foreach 对结果进行分组,然后再使用一个 foreach 来根据需要显示打印组。
<?php
$categories = [];
foreach ($data as $value) {
$categoryname = $value['name'];
$medication = $value['medication'];
$arrmaincatname = explode('(', rtrim($categoryname, ')'));
if ($categoryname == "Saba") {
$categories[$arrmaincatname[0]][] = $medication;
}
}
foreach ($categories as $categoryName => $category) {?>
In <?php echo $categoryName; ?> category -- [<?php echo implode(', ', $category) ?>]
<?php
}
我有这个代码
<?php
$query1 = "SELECT users.id,
testtable_result.id as result_id,
testtable_result.user_id,
testtable_result.cad_id,
testtable_result.medication,
testtable_result.color,
testtable_category.category_id,
testtable_category.name
FROM users
INNER JOIN testtable_result
ON testtable_result.user_id=users.id
INNER JOIN testtable_category
ON testtable_result.cad_id=testtable_category.category_id
WHERE users.id = '{$userID}' AND color LIKE '%blue%';";
$result1 = query($query1);
confirm($result1);
if (row_count($result1) > 0) :
while($row1 = fetch_Array($result1)) {
$medication = $row1['medication'];
$data[] = $row1;
}
foreach ($data as $value) {
$categoryname = $value['name'];
$medication = $value['medication'];
$arrmaincatname = explode('(', rtrim($categoryname, ')'));
if($categoryname == "Saba"){
$datacat = $arrmaincatname[0];
$medicacat = $medication; ?>
In <?php echo $datacat; ?> category -- [<?php echo $medicacat ?>]
<?php
}} ?>
它显示这样的结果
在 Saba 类别中 -- [ProAir RespiClick®] 在 Saba 类别中 -- [Proventil® HFA]
我想去掉所有重复的结果,想这样显示。
在 Saba 类别中 -- [ProAir RespiClick®, Proventil® HFA]
您可以使用一个 foreach 对结果进行分组,然后再使用一个 foreach 来根据需要显示打印组。
<?php
$categories = [];
foreach ($data as $value) {
$categoryname = $value['name'];
$medication = $value['medication'];
$arrmaincatname = explode('(', rtrim($categoryname, ')'));
if ($categoryname == "Saba") {
$categories[$arrmaincatname[0]][] = $medication;
}
}
foreach ($categories as $categoryName => $category) {?>
In <?php echo $categoryName; ?> category -- [<?php echo implode(', ', $category) ?>]
<?php
}