我有两个表(类别和字段),其中一个字段可以分配给多个类别,如
name | category_ids
color | 1,2
size | 1,3
我正在尝试为这样的给定分类分配字段
foreach($category_ids as $category_id){
$fields = $this->model->getFields($category_id);
foreach ($fields as $field) {
echo $field->name;
}
}
此输出将为我提供包括重复的值。我该如何删除重复项。请帮忙
编辑:
例如,$category_ids
是1,2,那么我得到的输出是color,color,size
但我希望输出像color,size
答案 0 :(得分:1)
您可以将所有获取的值存储在数组中,然后可以使用array_unique函数删除重复的值。
$fieldsArray = [];
foreach($category_ids as $category_id){
$fields = $this->model->getFields($category_id);
foreach ($fields as $field) {
$fieldsArray[] = $field->name;
}
}
$fieldsArray = array_unique($fieldsArray);
答案 1 :(得分:0)
您可以尝试这样:
$existing = array();
foreach($category_ids as $category_id) {
$fields = $this->model->getFields($category_id);
foreach ($fields as $field) {
if (!in_array($field->name, $existing)) {
$existing[] = $field->name;
echo $field->name;
}
}
}
但是我想建议您规范数据库。我认为它是最好的解决方案。