當前位置: 首頁> 函數類別大全> array_udiff

array_udiff

用回調函數比較數據來計算數組的差集
名稱:array_udiff
分類:數組
所屬語言:php
一句話介紹:比較數組,返回差集(只比較值,使用一個用戶自定義的鍵名比較函數)。

實例

例子1

比較兩個數組的鍵值(使用用戶自定義函數比較鍵值),並返回差集:

 <span class="token php language-php"><span class="token delimiter important"><?php</span>
<span class="token keyword">function</span> <span class="token function-definition function">myfunction</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">return</span> <span class="token number">0</span> <span class="token punctuation">;</span>
  <span class="token punctuation">}</span>
  <span class="token keyword">return</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">"green"</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">"blue"</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">"blue"</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">"black"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"e"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"blue"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span>

<span class="token variable">$result</span> <span class="token operator">=</span><span class="token function"></span></span><mark> <span class="token function">array_udiff</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"</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>

親自試一試

例子2

比較三個數組的鍵值(使用用戶自定義函數比較鍵值),並返回差集:

 <span class="token php language-php"><span class="token delimiter important"><?php</span>
<span class="token keyword">function</span> <span class="token function-definition function">myfunction</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">return</span> <span class="token number">0</span> <span class="token punctuation">;</span>
  <span class="token punctuation">}</span>
  <span class="token keyword">return</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">"green"</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">"blue"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"yellow"</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">"GREEN"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"yellow"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"black"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span>
<span class="token variable">$a3</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">"green"</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">"red"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"yellow"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"black"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span>

<span class="token variable">$result</span> <span class="token operator">=</span><span class="token function"></span></span><mark> <span class="token function">array_udiff</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 variable">$a3</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"myfunction"</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>

親自試一試

同類函數
  • 移除數組中重複的值 array_unique

    array_unique

    移除數組中重複的值
  • 對數組中的每個成員遞歸地應用用戶函數 array_walk_recursive

    array_walk_recursive

    對數組中的每個成員遞歸地應用用戶函數
  • 使用指定的鍵和值填充數組 array_fill_keys

    array_fill_keys

    使用指定的鍵和值填充數組
  • 遞歸地合併一個或多個數組 array_merge_recursive

    array_merge_recursive

    遞歸地合併一個或多個數組
  • 從數組中隨機取出一個或多個單元 array_rand

    array_rand

    從數組中隨機取出一個或多個單元
  • array_key_exists的別名 key_exists

    key_exists

    array_key_exists的別名
  • 對數組逆向排序 rsort

    rsort

    對數組逆向排序
  • 返回數組中當前的鍵/值對並將數組指針向前移動一步-本函數已自PHP 7.2.0 起廢棄。強烈建議不要使用本函數。 each

    each

    返回數組中當前的鍵/值對並將數組指針向前