wmaraci reklam
tr.link

while döngüsü içinde if kullanma?

9 Mesajlar 1.145 Okunma
acebozum
tr.link

gokrtl gokrtl mekatronik.org Kullanıcı
  • Üyelik 11.11.2016
  • Yaş/Cinsiyet 40 / E
  • Meslek Özel Güvenlik Görevlisi
  • Konum Antalya
  • Ad Soyad G** K**
  • Mesajlar 122
  • Beğeniler 19 / 24
  • Ticaret 0, (%0)
Merhaba başlıktan da anlayacağınız gibi acemiyim.
Bir Sorunum var.
Elimde başka siteden çektiğim array dizisi içinde linkler var. Bu linklerin çoğu 2 kere peş peşe geliyor. Aralarda da tek link oluyor. Ben bu iki kere gelen linklerden sadece birini almak istiyorum. Nasıl bir döngü oluşturacağımı kestiremedim.
GELEN DİZİ ŞÖYLE;
[1] => Array
(
[0] => /detay/38a603e0-dc27-4254-83b3-a76b5d239d9c
[1] => /detay/38a603e0-dc27-4254-83b3-a76b5d239d9c
[2] => /detay/fd66b3b5-a19b-45ad-83cd-eb4f11474abf
[3] => /detay/fd66b3b5-a19b-45ad-83cd-eb4f11474abf
[4] => /detay/4bd3b33e-04c0-4b5e-922c-de133e31741b
[5] => /detay/4bd3b33e-04c0-4b5e-922c-de133e31741b
[6] => /detay/80039fdc-76c3-4a0f-ada8-f84508e1bdf1
[7] => /detay/80039fdc-76c3-4a0f-ada8-f84508e1bdf1
[8] => /detay/e5d6fdf3-07a8-4d69-9c41-ebe9d5d39a00
[9] => /detay/e5d6fdf3-07a8-4d69-9c41-ebe9d5d39a00
[10] => /detay/eb38826b-a111-4af6-82cf-a2ec86f529f4
[11] => /detay/eb38826b-a111-4af6-82cf-a2ec86f529f4
[12] => /detay/5305ba07-91bb-492d-be31-76b1dc748e91
[13] => /detay/838ffea9-b8d7-4f18-a1bc-c6bd97ae8389
[14] => /detay/bd84972d-f14b-48d1-b637-5d9931fdce41
[15] => /detay/2a29d67e-015a-47f8-8767-0dc1e05a89d6
[16] => /detay/87a445a1-b82b-4003-8ffb-df4fcb67b01e
[17] => /detay/87a445a1-b82b-4003-8ffb-df4fcb67b01e
[18] => /detay/08209692-449e-49e8-9ab8-4d751e6d9298
[19] => /detay/08209692-449e-49e8-9ab8-4d751e6d9298
[20] => /detay/7e11f8ba-7636-4be9-b3fc-e2e7b31be808
[21] => /detay/7e11f8ba-7636-4be9-b3fc-e2e7b31be808
[22] => /detay/4e99e4b6-f029-4115-b098-a283e3761b37
[23] => /detay/4e99e4b6-f029-4115-b098-a283e3761b37
[24] => /detay/33a2019b-1a0b-4b29-894d-b6c2e3ecbfbc
[25] => /detay/33a2019b-1a0b-4b29-894d-b6c2e3ecbfbc
[26] => /detay/38a603e0-dc27-4254-83b3-a76b5d239d9c
[27] => /detay/38a603e0-dc27-4254-83b3-a76b5d239d9c
[28] => /detay/80039fdc-76c3-4a0f-ada8-f84508e1bdf1
[29] => /detay/80039fdc-76c3-4a0f-ada8-f84508e1bdf1
[30] => /detay/fd66b3b5-a19b-45ad-83cd-eb4f11474abf
[31] => /detay/fd66b3b5-a19b-45ad-83cd-eb4f11474abf
[32] => /detay/4bd3b33e-04c0-4b5e-922c-de133e31741b
[33] => /detay/4bd3b33e-04c0-4b5e-922c-de133e31741b
[34] => /detay/eb38826b-a111-4af6-82cf-a2ec86f529f4
[35] => /detay/eb38826b-a111-4af6-82cf-a2ec86f529f4
[36] => /detay/e5d6fdf3-07a8-4d69-9c41-ebe9d5d39a00
[37] => /detay/e5d6fdf3-07a8-4d69-9c41-ebe9d5d39a00
)


DÖNGÜM İSE ŞÖYLE;

$sayi = 0;
while($sayi < 3) {
$link = $matches[1][$sayi];

echo "
";

print_r($link);
echo "
";

$sayi++;
}

 

 

www.mekatronik.org/forum
googleasistan
reklam

KadirCeyhan KadirCeyhan WM Aracı Kullanıcı
  • Üyelik 23.10.2016
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci
  • Konum Denizli
  • Ad Soyad K** C**
  • Mesajlar 689
  • Beğeniler 0 / 203
  • Ticaret 6, (%100)
PHP böyle bir fonksiyona kendiliğinden sahip

Kaynak : http://php.net/manual/tr/function.array-unique.php

Açıklama : array_unique — Diziden yinelenen değerleri siler


$YeniDizi = array_unique($EskiDizi);
print_r($YeniDizi);


Not : $EskiDizi içindeki tekrar edenleri silip, $YeniDizi değişkenine aktarır.
 

 

emreyvz emreyvz .NET Core & Angular & PHP Kullanıcı
  • Üyelik 19.04.2016
  • Yaş/Cinsiyet 28 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İstanbul Anadolu
  • Ad Soyad E** Y**
  • Mesajlar 691
  • Beğeniler 110 / 250
  • Ticaret 24, (%100)
Şu şekilde de yapılabilir. Bir dizi içine kullanılanlar aktarılır. Ekleme yapılmadan önce her element için daha önce eklenmiş mi diye kontrol edilir.Eklenmemişse yani dizide yoksa yazdırılır.



$kullanilan = array();
$sayi = 0;
while($sayi < 3) {
$link = $matches[1][$sayi];
if (! in_array($link,$kullanilan)){
echo "
"; 
print_r($link);
echo "
";
array_push($kullanilan,$link);
}
$sayi++;
}


?>



Kodda hata olabilir. :) Kolay gelsin.
 

 

gokrtl gokrtl mekatronik.org Kullanıcı
  • Üyelik 11.11.2016
  • Yaş/Cinsiyet 40 / E
  • Meslek Özel Güvenlik Görevlisi
  • Konum Antalya
  • Ad Soyad G** K**
  • Mesajlar 122
  • Beğeniler 19 / 24
  • Ticaret 0, (%0)
Teşekkürler mesaiden sonra deneyeceğim
 

 

www.mekatronik.org/forum
wmaraci
wmaraci

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)

Jelioxe adlı üyeden alıntı

PHP böyle bir fonksiyona kendiliğinden sahip

Kaynak : http://php.net/manual/tr/function.array-unique.php

Açıklama : array_unique — Diziden yinelenen değerleri siler


$YeniDizi = array_unique($EskiDizi);
print_r($YeniDizi);


Not : $EskiDizi içindeki tekrar edenleri silip, $YeniDizi değişkenine aktarır.


hocam unique büyük boyutlu dizilerde işlem yapabiliyor mu ? eğer yapıyorsa süper :)
 

 

KadirCeyhan KadirCeyhan WM Aracı Kullanıcı
  • Üyelik 23.10.2016
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci
  • Konum Denizli
  • Ad Soyad K** C**
  • Mesajlar 689
  • Beğeniler 0 / 203
  • Ticaret 6, (%100)
Çoktan kastınız nedir ?
 

 

gokrtl gokrtl mekatronik.org Kullanıcı
  • Üyelik 11.11.2016
  • Yaş/Cinsiyet 40 / E
  • Meslek Özel Güvenlik Görevlisi
  • Konum Antalya
  • Ad Soyad G** K**
  • Mesajlar 122
  • Beğeniler 19 / 24
  • Ticaret 0, (%0)

Jelioxe adlı üyeden alıntı

PHP böyle bir fonksiyona kendiliğinden sahip

Kaynak : http://php.net/manual/tr/function.array-unique.php

Açıklama : array_unique — Diziden yinelenen değerleri siler


$YeniDizi = array_unique($EskiDizi);
print_r($YeniDizi);


Not : $EskiDizi içindeki tekrar edenleri silip, $YeniDizi değişkenine aktarır.



Bu yöntem bende işe yaramadı.
Şöyleki;

array_unique kullanmadan önce dizi bu şekildeydi. 0 ve 1 arrayları vardı.
array_unique kullandıktan sonra alt sıradaki 1 numaralı array yok oldu. Sadece üst sıradaki 0 dizisi kaldı ve o dizide de yine birbirinin aynı linkler var.
Üstelik ben alt sıradaki 1 nolu diziyi kullanıyordum. Çünkü onların başında html tagı yok. Birde döngüdeki kodu deneyeyim.

Array
(
[0] => Array
(
[0] => href="/detay/5127c29d-e1e7-4c91-a79e-79200e3d5b08
[1] => href="/detay/5127c29d-e1e7-4c91-a79e-79200e3d5b08
[2] => href="/detay/aee6df7d-7a83-4d6f-acd4-b54bb6a33ddb
[3] => href="/detay/aee6df7d-7a83-4d6f-acd4-b54bb6a33ddb
[4] => href="/detay/31540cd0-def3-41fe-9bf4-7de1fb209ae6
[5] => href="/detay/31540cd0-def3-41fe-9bf4-7de1fb209ae6
)

)
Array
(
[1] => Array
(
[0] => /detay/5127c29d-e1e7-4c91-a79e-79200e3d5b08
[1] => /detay/5127c29d-e1e7-4c91-a79e-79200e3d5b08
[2] => /detay/aee6df7d-7a83-4d6f-acd4-b54bb6a33ddb
[3] => /detay/aee6df7d-7a83-4d6f-acd4-b54bb6a33ddb
[4] => /detay/31540cd0-def3-41fe-9bf4-7de1fb209ae6
[5] => /detay/31540cd0-def3-41fe-9bf4-7de1fb209ae6
)
)


Ek Olarak:

Birde şunu denedim.

$matchess = array_unique($matches[1]);

Dizi aşağıdaki gibi oldu. Ama bunda da sıkıntı var. diziler benzersiz geldi tamam ama dizi sıralaması karıştı.
Ben while döngüsünde bunları bu şekilde kullanamam.


Array
(
[0] => /detay/5127c29d-e1e7-4c91-a79e-79200e3d5b08
[2] => /detay/aee6df7d-7a83-4d6f-acd4-b54bb6a33ddb
[4] => /detay/31540cd0-def3-41fe-9bf4-7de1fb209ae6
[6] => /detay/b7b6bc38-a2cb-49de-b33c-5fdba411a068
[8] => /detay/fd9206a7-4a36-4e6e-a8ff-f48e3b56cc3a
[10] => /detay/75994fe6-ea9e-407c-9330-491d1ed4be31
[12] => /detay/4e7b498d-b4a6-461b-8803-1d11ef1e8b7f
[13] => /detay/23f9e15a-0bf8-4710-846a-e140213089db
[14] => /detay/5305ba07-91bb-492d-be31-76b1dc748e91
[15] => /detay/838ffea9-b8d7-4f18-a1bc-c6bd97ae8389
[16] => /detay/87a445a1-b82b-4003-8ffb-df4fcb67b01e
[18] => /detay/08209692-449e-49e8-9ab8-4d751e6d9298
[20] => /detay/4e99e4b6-f029-4115-b098-a283e3761b37
[22] => /detay/7e11f8ba-7636-4be9-b3fc-e2e7b31be808
[24] => /detay/a368a4ed-a0d7-48ea-954a-343e0337f37b
)
 

 

www.mekatronik.org/forum

KadirCeyhan KadirCeyhan WM Aracı Kullanıcı
  • Üyelik 23.10.2016
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci
  • Konum Denizli
  • Ad Soyad K** C**
  • Mesajlar 689
  • Beğeniler 0 / 203
  • Ticaret 6, (%100)
Aşağıdaki kodları denermisin birde.

$Yeni = array_values(array_flip(array_flip($Eski)));

print_r($Yeni);
 

 

gokrtl gokrtl mekatronik.org Kullanıcı
  • Üyelik 11.11.2016
  • Yaş/Cinsiyet 40 / E
  • Meslek Özel Güvenlik Görevlisi
  • Konum Antalya
  • Ad Soyad G** K**
  • Mesajlar 122
  • Beğeniler 19 / 24
  • Ticaret 0, (%0)
Yok hocam. Bunlarla hiç veri gelmedi. boş array dönüyor

Ama kurcalaya kurcalaya doğru Kodu buldum. Doğru Kodlama Aşağıdaki Gibidir.
Yardımlarınız için çok teşekkür ederim.

$yeni = array_values(array_unique($eski[1]));

print_r($yeni);

Array
(
[0] => /detay/b2e62f05-e4a8-486a-b234-20346d977afa
[1] => /detay/e949a0f9-98d0-49f3-8a0b-a1bd97b8fd32
[2] => /detay/39a82648-721e-4674-826d-a1ace1c6fd14
[3] => /detay/665e69ca-029a-4489-9c67-41fa3a4c4cff
[4] => /detay/33f75928-2d1b-47d5-aace-a792848af656
[5] => /detay/cf28cd6f-d881-4d75-9c64-273afb113ec2
[6] => /detay/0fac1697-5812-462a-b7dd-854ffb2bb8d4
[7] => /detay/4e7b498d-b4a6-461b-8803-1d11ef1e8b7f
[8] => /detay/23f9e15a-0bf8-4710-846a-e140213089db
[9] => /detay/5305ba07-91bb-492d-be31-76b1dc748e91
[10] => /detay/fd9206a7-4a36-4e6e-a8ff-f48e3b56cc3a
[11] => /detay/17842847-ea0b-4b5a-ae8b-34d035376f9e
[12] => /detay/0926d46b-f4e9-4cc3-92c5-3ef2069eb7ad
[13] => /detay/82fc4802-b105-44c8-89d5-a8cffea1e0ec
[14] => /detay/74224d84-10e6-4105-9478-c462a0b6e79c
)
 

 

www.mekatronik.org/forum
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al