簡體   English   中英

PHP從foreach循環獲取唯一數組

[英]PHP Get unique array from foreach loop

我有兩個表(類別和字段),其中一個字段可以像這樣分配給多個類別

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;
        }
    }
}

但我建議您規范化數據庫。 我認為這將是最好的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM