PHP array_diff 的应用
定义和用法:
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: 其实我们目的是: 以新的为准: 我们要把新标签中的D, E添加, 把旧标签中的A,B 删除
像上面这种情况, 我第一次想到就是把旧标签全删除,然后添加新的,不就行了, 但是细细想想不妥, 删除啊,什么概念啊,我知道对于数据表中的数据删除,是很慎重的,再说了,现在可能项目中,每个用户就有几个标签,那要是有很多个那,难道我们还要删除吗? 还有就是当我们删除表数据时, 会发现数据文件尺寸并没有减小。这是因为删除操作后在数据文件中留下碎片所致. 所以这种方法不可取!
然后可能我又会想到,遍历他们吧,让后进行比较,不对照的添加或者删除,我发现这种特别麻烦,两个数据都要进行遍历,数据要一条一条进行比较,数据少还行,数据多了,就不好了!
所以这次我们想到一个办法,就是利用了php函数array-diff()
例如:
1: array_diff (旧, 新) => [A, B] => 删除(修改状态为:禁用状态)
2: array_diff(新, 旧) => [D ,E] => 添加
上面是不是解决了问题,既把旧的处理了,也把新的添加了,是不是不错的..........
以上就介绍了 PHP array_diff 的应用,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Travailler avec la base de données dans CakePHP est très simple. Nous comprendrons les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) dans ce chapitre.

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Se connecter à CakePHP est une tâche très simple. Il vous suffit d'utiliser une seule fonction. Vous pouvez enregistrer les erreurs, les exceptions, les activités des utilisateurs, les actions entreprises par les utilisateurs, pour tout processus en arrière-plan comme cronjob. La journalisation des données dans CakePHP est facile. La fonction log() est fournie

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c
