我的數組:數組基於第一個值唯一嗎?
$arr = [['abc', 'a'],['xyz', 'f'],['abc', 'x']];
我需要刪除任何重複的第一個值,例如。有兩個ABC值以上,array_unique不會爲第二值不同的工作:
$arr = array_unique($arr, SORT_REGULAR);
有沒有辦法讓只有基於第一值唯一值。我不能改變上述結構。
所需的輸出是:
$arr = [['abc', 'a'],['xyz', 'f']];
我的數組:數組基於第一個值唯一嗎?
$arr = [['abc', 'a'],['xyz', 'f'],['abc', 'x']];
我需要刪除任何重複的第一個值,例如。有兩個ABC值以上,array_unique不會爲第二值不同的工作:
$arr = array_unique($arr, SORT_REGULAR);
有沒有辦法讓只有基於第一值唯一值。我不能改變上述結構。
所需的輸出是:
$arr = [['abc', 'a'],['xyz', 'f']];
array_combine()array_column() &可以幫助。但它會改變嵌套數組的順序,並且只保留重複值的最後一個值。
$arr = [['abc', 'a'],['xyz', 'f'],['abc', 'x']];
$temp = array_combine(array_column($arr, 0), $arr);
array_column
不適用於舊版本。 (提供(PHP 5> = 5.5.0,PHP 7))
輸出
array(2) {
["abc"]=>
array(2) {
[0]=>
string(3) "abc"
[1]=>
string(1) "x"
}
["xyz"]=>
array(2) {
[0]=>
string(3) "xyz"
[1]=>
string(1) "f"
}
}
array_column將與來自子陣列的所有值與0
索引返回數組。
array_combine將分配子陣列到由array_column
返回的值。
因此,如果同一個鍵不能存在兩次,它將用相同的鍵(對於0
)用較新的值覆蓋以前的值。因此新陣列將僅保存最新(最後一個)值。
什麼是期望的輸出? –
更新了所需輸出的問題。 – panthro
*我需要刪除任何重複的第一個值*。但期望的輸出是刪除最後一個。 –