array_uintersect_uassoc
Calculez l'intersection des tableaux avec la vérification de l'index et utilisez une fonction de rappel distincte pour comparer les données et les index
Comparez les noms de clés et les valeurs de clés de deux tableaux (comparer avec les fonctions définies par l'utilisateur) et renvoyez l'intersection (correspondance):
<span class="token php language-php"><span class="token delimiter important"><? Php</span> <span class="token keyword">fonction</span> <span class="token function-definition function">myFunction_key</span> <span class="token punctuation">(</span> <span class="token variable">$ a</span> <span class="token punctuation">,</span> <span class="token variable">$ b</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">if</span> <span class="token punctuation">(</span> <span class="token variable">$ a</span> <span class="token operator">===</span> <span class="token variable">$ b</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">retour</span> <span class="token number">0</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">retour</span> <span class="token punctuation">(</span> <span class="token variable">$ a</span> <span class="token operator">></span> <span class="token variable">$ b</span> <span class="token punctuation">)</span> <span class="token operator">?</span> <span class="token number">1</span> <span class="token punctuation">:</span> <span class="token operator">-</span> <span class="token number">1</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">fonction</span> <span class="token function-definition function">myFunction_value</span> <span class="token punctuation">(</span> <span class="token variable">$ a</span> <span class="token punctuation">,</span> <span class="token variable">$ b</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">if</span> <span class="token punctuation">(</span> <span class="token variable">$ a</span> <span class="token operator">===</span> <span class="token variable">$ b</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">retour</span> <span class="token number">0</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">retour</span> <span class="token punctuation">(</span> <span class="token variable">$ a</span> <span class="token operator">></span> <span class="token variable">$ b</span> <span class="token punctuation">)</span> <span class="token operator">?</span> <span class="token number">1</span> <span class="token punctuation">:</span> <span class="token operator">-</span> <span class="token number">1</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token variable">$ a1</span> <span class="token operator">=</span> <span class="token keyword">array</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"a"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"red"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"b"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"vert"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"c"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"bleu"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token variable">$ a2</span> <span class="token operator">=</span> <span class="token keyword">array</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"a"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"red"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"b"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"vert"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"c"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"vert"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token variable">$ résultat</span> <span class="token operator">=</span><span class="token function"></span></span><mark> <span class="token function">array_uintersect_uassoc</span> <span class="token punctuation">(</span> <span class="token variable">$ a1</span> <span class="token punctuation">,</span> <span class="token variable">$ a2</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"myfunction_key"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"myfunction_value"</span> <span class="token punctuation">)</span></mark><span class="token punctuation"></span> <span class="token punctuation">;</span> <span class="token function">print_r</span> <span class="token punctuation">(</span> <span class="token variable">$ result</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token delimiter important">?></span>