صفيف PHP يتجاهل القيم المكررة

0

ما هي أفضل طريقة لتجاهل التكرارات لاسم_العميل في هذه المجموعة المجمعة؟ أريد فقط عرض قائمة بأسماء فريدة.

Array
(
    [1] => Array
        (
            [0] => Array
                (
                    [model_id] => 1
                    [work_order] => 10999
                    [id] => 1
                    [model_name] => STC1.5
                    [stock] => 3
                    [free] => 1
                    [customer_name] => Jane Doe
                )

            [1] => Array
                (
                    [model_id] => 1
                    [work_order] => 10998
                    [id] => 1
                    [model_name] => STC1.5
                    [stock] => 3
                    [free] => 1
                    [customer_name] => Jane Doe
                )

        )
)

2 الاجابة

0

يمكنك إنشاء مصفوفة بالاسم فقط مع array_column واستخدام array_unique في ذلك.
ثم استخدم array_intersect_key للحصول على المصفوفات الفرعية المقابلة من الصفيف الرئيسي.

$name = array_unique(array_column($arr[1], "customer_name"));
$unique = array_intersect_key($arr, $name);
:مؤلف
0

على افتراض أنك لا تهتم إلا بالأسماء الفريدة و $arr يكون:

Array
(
    [1] => Array
        (
            [0] => Array
                (
                    [model_id] => 1
                    [work_order] => 10999
                    [id] => 1
                    [model_name] => STC1.5
                    [stock] => 3
                    [free] => 1
                    [customer_name] => Jane Doe
                )

            [1] => Array
                (
                    [model_id] => 1
                    [work_order] => 10998
                    [id] => 1
                    [model_name] => STC1.5
                    [stock] => 3
                    [free] => 1
                    [customer_name] => Jane Doe
                )

        )
)

ثم يمكنك استخدام:

$unique_names = array_keys(array_flip(array_column($arr[1],'customer_name')));

إذا كنت قلقًا بشأن التحسين الجزئي ، فحاول:

$unique_names = array();

foreach( $arr[1] as $v )
{
    $unique_names[$v['customer_name']] = $v['customer_name'];
}
:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام