在執行過程中保持原陣列鍵名不變的情況下可以直接先取得 『name』,『city』 兩個欄位的資料,通過array_unique函式去除重複元素後接著array_diff_assoc比對修改前後的差值存入新陣列,最後使用foreach進行查詢兩個欄位的篩選情況即可得出結果。話不多說,直接上原始碼:
<?php
$provinces=[
['id'
=>1,
'name'
=>
'張三'
,'city'
=>
'湖南'],
['id'
=>2,
'name'
=>
'李四'
,'city'
=>
'河北'],
['id'
=>3,
'name'
=>
'張三'
,'city'
=>
'湖北'],
['id'
=>4,
'name'
=>
'王五'
,'city'
=>
'北京'],
['id'
=>5,
'name'
=>
'王五'
,'city'
=>
'北京'],
];list
($arr1
,$arr2)=
[array_column
($provinces
,'name'),
array_column
($provinces
,'city')]
;list
($arr1
,$arr2)=
[array_diff_assoc
($arr1
,array_unique
($arr1))
,array_diff_assoc
($arr2
,array_unique
($arr2))
];foreach
($arr1
as$k
=>$v)
if(array_key_exists($k
,$arr2))
$result
=$v;//$result = $provinces[$k];
var_dump
($result
);
PHP 兩個二維陣列進行合併
業務場景 假設需要查詢出乙個表中的所有聯絡人資料,由於資料過於龐大,不能將資料表內的資料一次性全部查詢出來,只能按照分頁查詢進行進一步的篩選資料,如果需要返回某些使用者狀態,比如上線,置頂聊天等等。那麼必須操作兩個陣列,乙個陣列按照分頁查詢使用者資料,乙個陣列按照某個條件查詢某狀態的使用者資料 ar...
PHP二維陣列去重(指定鍵名)
本例對二維陣列中某個指定鍵名進行去重,發現網上大多使用array unique或是foreach遍歷等方式去重,效果不佳且較為繁瑣。本文以二維陣列去重為引,介紹array column函式的三種用法。以下是本人常用的去重方法 以指定欄位為索引,自然會把索引欄位中重複的值覆蓋掉,然後在去除關聯索引就可...
PHP 二維陣列排序保持鍵名不變
對二維陣列指定的鍵名排序,首先大家想到的是array multisort函式,關於array multisort的用法我之前也寫了一篇 廢話不多言,我們看個例項 data array 1001 array age 22,name 鳩摩智 1007 array age 21,name 慕容復 1004...