Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.
Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin. Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

Massivdan bir xil qiymatlarni o`chirish

+6 ovoz
94 marta ko‘rilgan
so‘radi 05 yanvar, 17 Bilmasvoy (904 bal)

Massiv berilgan, bir martadan ortiq kelgan qiymatlarni barchasini o`chirish kerak. Eng sondda usuli qaysi?

Masalan:

array("Qizil", "Sariq", "Qizil", "Oq");

Natija

array("Sariq", "Oq");

Shu siklsiz qilishni iloji bormikan? PHP ni o`zini imkoniyatlaridan foydalanib?

Mening urinishlarim:

$test = array("Qizil", "Sariq", "Qizil", "Oq");
$elCounts = array_count_values($test);
$result = array();

for ($i = 0; $i < count($test); ++$i) {
    foreach ($elCounts as $k => $v) {
        if ($test[$i] == $k && $v == 1) {
            $result[] = $test[$i];
            break;
        }
    }
}

print_r($result);

2 Javoblar

0 ovoz
javob berdi 06 yanvar, 17 Kenjebaev (1,071 bal)

Siz yozgandek takrorlash operatorini ishlatish shart emas

array_unique($test, SORT_REGULAR);

siz ko'rsatgan natija chiqadi

izoh qoldirdi 06 yanvar, 17 Baron (858 bal)
Chiqmaydi, "Qizil" qolib ketadi. array_unique - har bir elementdan bittadan qoldiradi, savolda esa massivda faqat bittadan qatnashgan elementlargina qolishi kerak, qolgan barchasi (qaytarilgan elementlarning barchasi) o'chib ketishi kerak
izoh qoldirdi 07 yanvar, 17 Bilmasvoy (904 bal)
ha shunday. Faqat 1 marta kelganlarini o`zi qolishi kerak
izoh qoldirdi 11 yanvar, 17 Kenjebaev (1,071 bal)
Tepadagi kod yordamida bir nechta marta keladiganlarni ajratib olsak.
Keyingi qadamda asl array va takrorlangan array hosil bo'ladi to'g'rimi
Ikkisini solishtirish sizning urinishdan yaxshiroq nazarimda.
izoh qoldirdi 13 yanvar, 17 _ts_ (135 bal)
array_unique($test, SORT_REGULAR);
bu pythonda

set(test)

bo'ladi
0 ovoz
javob berdi 13 yanvar, 17 _ts_ (135 bal)

phpda bilmadimu lekin pythonda quyidagicha qilsa bo'ladi:

a = ['a', 'b', 'c', 'd', 'b']
b = [i for n,i in enumerate(a) if i in a[n+1:]]

a = list(set(a) -  set(b))
#yoki
a = [x for x in a if x not in b]

print(a)

Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.

Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin.

Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

Telegram kanal YordamUzRss

...