定義與用法:
array_diff() 函數傳回兩個陣列的差集陣列。此數組包括了所有在被比較的數組中,但是不在任何其他參數數組中的鍵值。
在傳回的陣列中,鍵名保持不變。
語法
array_diff(<em>array1</em>,<em>array2</em>,<em>array3</em>...);
参数 | 描述 |
array1 | 必需。与其他数组进行比较的第一个数组。 |
array2 | 必需。与第一个数组进行比较的数组。 |
array3 | 可选。与第一个数组进行比较的其他数组 |
提示:可用一個或任意多個陣列與第一個陣列進行比較。
回傳值
返回值: | 返回差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的键值。 |
PHP 版本: | 4.0.1+ |
說明:
只知道他是比較差集的,也沒怎麼多想,但是最近我的專案中有關於標籤的處理問題,用到了這個,以前從來沒有這樣用過,這裡記錄下,以後再有這種情況,也可以應用下.
我的業務要求:每個客戶可以有單一或多個標籤,而標籤儲存要儲存為單一或多重記錄,那麼對於新增,很簡單了,就是新增一條,或者批量添加多條記錄,但是修改,就不太一樣了,就是以最新的為主,通俗的說,就是要是舊標籤裡面不包含新的標籤,那麼我們要添加新標籤,刪除舊標籤.但還有情況是: 假如舊標籤中有部分是包含新標籤的其中一個或者多個,那麼問題就是,我們出去舊標籤中不包含新標籤的,添加新標籤在舊標籤中不存在的.估計有點暈了,我舉例說明:
舉例:
舊標: [A, B, C ] 新標籤: [C, D, E]
像上面這種情況, 我第一次想到就是把舊標籤全刪除,然後添加新的,不就行了, 但是細細想想不妥, 刪除啊,什麼概念啊,我知道對於數據表中的數據刪除,是很慎重的,再說了,現在可能項目中,每個用戶就有幾個標籤,那要是有很多個那,難道我們還要刪除嗎? 還有就是當我們刪除表資料時, 會發現資料檔案尺寸並沒有減小。這是因為刪除操作後在資料檔案中留下碎片所致. 所以這種方法不可取!
1: array_diff (舊式, 新) => [A, B] for:禁用狀態)
2: array_diff(新, 舊) => [D ,E] => 了,也把新的加了,是不是不錯的..........
以上就介紹了 PHP array_diff 的應用,包含了面向的內容,希望對PHP教學有興趣的朋友有幫助。