簡體   English   中英

獲得具有不同值的數組的更優雅方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM