[英]More elegant way of getting array with distinct values
我有這個數組:
$array[] = [
'a' => $a,
'b' => $b,
];
該數組包含10個條目,$ a可以多次使用相同的值存在,而對於數據庫插入,我只需要其中一個條目即可。
我無法使array_unique正常工作
array to string conversion
嘗試使用它時出現錯誤
$result = array_unique($array);
我現在做了一個foreach循環,這樣做感覺是錯誤的:
$z = [];
foreach ($array as $x) {
if (@!in_array($x['a'],$z)) {
$z[] = $x['a'];
}
}
然后我將$ z用於插入。
有人可以為我指出如何區分數組值的正確方向嗎?
這應該為您工作:
( $result = array_unique($array);
這沒有用,因為您有多維數組!)
<?php
//Example data
$array[] = [
'a' => 1,
'b' => 1,
'c' => 1,
'd' => 2,
'e' => 2,
];
$array = array_map("array_unique", $array);
print_r($array);
?>
輸出:
Array ( [0] => Array ( [a] => 1 [d] => 2 ) )
基於二維數組,您將需要:
$array = array_map('array_unique', $array);
或者,如果您不需要二維數組,請使用:
$array = [
'a' => $a,
'b' => $b,
];
然后: $array = array_unique($array);
沒有提到的一件事是,如果您可以自己管理鍵,則數組是內置的。 關聯數組只能具有一次密鑰。 所以我喜歡做的是使用主鍵或鍵的唯一標識符。
這樣的數組不能具有相同的鍵。
array(
'a' => $a
'a' => $b
)
因為密鑰a
已經是唯一標識符。 如果您遵循。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.