我有两个表(类别和字段),其中一个字段可以分配给多个类别,比如这个
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
您可以将所有提取的值存储在数组中,然后可以使用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);
您可以这样尝试:
$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;
}
}
}
但我建议你将数据库正常化。我认为这将是最好的解决方案。