Проверьте дубликаты записи в массиве объектов. - PullRequest
0 голосов
/ 29 мая 2018
Illuminate\Database\Eloquent\Collection Object
(
    [items:protected] => Array
        (
            [0] => User Object
                (
                    [original:protected] => Array
                        (
                            [user_id] => 123456
                            [active] => 1
                            [name] => ABC XYZ
                            [first_name] => ABC
                            [last_name] => XYZ
                            [email] => abc@xyz.com
                            [username] => abcxyz
                            [secret_code] => S4#$sdD                           
                        )
                )

            [1] => User Object
                (

                    [original:protected] => Array
                        (
                            [user_id] => 987654
                            [active] => 1
                            [name] => CBD IHK
                            [first_name] => CBD
                            [last_name] => IHK
                            [email] => abc@xyz.com
                            [username] => seCdils
                            [secret_code] => S4#$sdD
                        )

                )

        )

)

Определить, что оба массива объектов имеют один и тот же секретный код. Возвращает логическое значение, если существует истина, иначе ложь. Попытка array_count_values ​​возвращает только строку и число.иначе ложь

1 Ответ

0 голосов
/ 29 мая 2018
<?php

$dupes = []; // keep track of duplicates
foreach ($users as $user1) { // iterate over all items
    $dupeCount = 0; // because we iterate over the same array, we always find at least the item itself (1 dupe minimum)

    foreach ($users as $user2) { // check the array again
        if ($user1 === $user2) { // if they are exactly the same: http://php.net/manual/en/language.oop5.object-comparison.php
            $dupeCount++;
        }
        if ($dupeCount > 1) { // because we always find at least 1, push only when we find more than that
            array_push($dupes, $user1); // add it to the result
        }
    }
}

Тем не менее, для вас комментарий

Я просто хочу проверить, если обнаружение секретного кода в массиве даст мне true, иначе false

, который должен быть в вашем вопроседля начала.

collect($users)->unique(function ($item) {
    return $item['secret_code'];
});
...