PHP二維陣列篩選兩個鍵名與元素都相同的資料

2021-10-03 21:45:51 字數 1346 閱讀 9199

在執行過程中保持原陣列鍵名不變的情況下可以直接先取得 『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...