簡體   English   中英

php數組唯一比較2種類型

[英]Php array unique comparing 2 types

我有來自excel的數據(超過10000個),數據格式如下:

范例:

Message | Number 

Test 1    021
Test 2    033
Test 3    022
Test 3    022
Test 3    033
Test 2    022
Test 2    021

接受的輸入應為

same number & different message
different number & same message
different number & different message

我正在嘗試使用array進行驗證,我嘗試了array_unique ,但是我只能使用1種類型,

$arrayCon[$i]=array("message"=>$message, "number"=>$number);
$realArray=array_unique($arrayCon["number"]);

如何在1個數組中比較2個類型?

您需要在數組本身上應用array_unique() ,並指定SORT_REGULAR標志以比較每個元素:

$realArray = array_unique($arrayCon, SORT_REGULAR)

您可以利用JSON,從而使數據行成為字符串,因此array_unique可以使用:

$source=array();
foreach($database as $row)
{
    $source[]=json_encode(array("message"=>$row[0],"number"=>$row[1]));
}
$unique=array_map(function($str){
    return json_decode($str,true);
},array_unique($source));

在線演示
(我現在在代理后面,似乎與3v4l.org的結果輸出混淆了。如果看不到結果,請告訴我)

我的本地主機輸出上的print_r

Array
(
    [0] => Array
        (
            [message] => Test 1
            [number] => 021
        )

    [1] => Array
        (
            [message] => Test 2
            [number] => 033
        )

    [2] => Array
        (
            [message] => Test 3
            [number] => 022
        )

    [4] => Array
        (
            [message] => Test 3
            [number] => 033
        )

    [5] => Array
        (
            [message] => Test 2
            [number] => 022
        )

    [6] => Array
        (
            [message] => Test 2
            [number] => 021
        )

)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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