我有一個多維數組。 這裏只有兩個記錄的例子,但可以有更多的:PHP - 確保多維數組中的某些值是唯一的
array(2) {
[0]=> array(7)
{
[0]=> string(0) ""
[1]=> string(0) ""
[2]=> string(7) "4646468"
[3]=> string(1) "1"
[4]=> string(1) "2"
[5]=> string(10) "2016-08-18"
[6]=> string(0) ""
}
[1]=> array(7)
{
[0]=> string(0) ""
[1]=> string(0) ""
[2]=> string(7) "4646469"
[3]=> string(1) "1"
[4]=> string(1) "2"
[5]=> string(10) "2016-08-18"
[6]=> string(0) ""
}
}
我需要確保對鍵0,1,和每個內記錄2的值是唯一的。如果其中的任何一個都不是,我想從數組中刪除該記錄(如數組元素的7個值)(但空字符串應該被忽略)。我發現this answer to a similar question成功地輸出了重複對象,但我也想從主數組中刪除它們。問題是我根本不明白這個代碼。我不明白的回調,因此不知道如何修改這個代碼來實現我需要什麼:
$unique = array();
foreach($checked as $v) {
$key = $v[0] . $v[1] . $v[2];
if (!isset($unique[$key]))
$unique[$key] = 0;
else
$unique[$key]++;
}
print_r(array_filter($unique));
感謝這一點 - 我開始以這種方式使用的原代碼,和它的作品除外,出於某種原因,它不工作,如果這三個字段中的一個以上已被填寫。換句話說,如果_only_key [0]中的數據與另一個記錄匹配,它會找到它。但是,如果密鑰1和2也有數據,則代碼不起作用。 – daninthemix
用戶輸入提供的密鑰中是否包含值,並且輸入是否已過濾?試試這個key_combination。 $ key = trim($ v [0])。修剪($ V [1])。修剪([$ v [1]) –
沒有幫助我害怕。它將在三個字段中的任何一個上找到匹配,但只有當這三個匹配字段是唯一的字段時纔可以匹配。 – daninthemix