Pluton Mesaj tarihi: Ekim 14, 2009 Mesaj tarihi: Ekim 14, 2009 PHP'de takıldığım bi nokta var ve sormak istedim. Olayım şu 2 tane dizim var. $deneme = array(1,2,3,4,5); $deneme2 = array(1,3,5,7); ( Bu dizi postdan gelen verilerle oluşturuluyor ) şimdi istiyorum ki bu ikisini kontrol edeyim eğer yukarıdaki değerlerin dışında bi değer varsa $deneme2'de false dönsün yoksa true dönsün. Yukarda verdiğim örnekde "7" rakamı oldugu için "false" dönmesi gerek. Eğer "7" olmasaydı true dönecekti. Aradım taradım bikaç yere sordum "array_diff_key" söylediler ama ondada istediğim şeyi yapamadım. Nasıl yapabilirim ?
Mum_Chamber Mesaj tarihi: Ekim 14, 2009 Mesaj tarihi: Ekim 14, 2009 array_intersect()'ten gecir, donen sonucun length'i karsilastirdigin (ufak olan) array'inkine denkse true dondur
Skroce Mesaj tarihi: Ekim 14, 2009 Mesaj tarihi: Ekim 14, 2009 php syntax kafamda degil ama asagi yukari söyle yapabilirsin for döngüsü ve $deneme2-count yardimi ile olur. yani array icerigini $deneme2[x] benzeri digeri ile karsilastirabilirsin tabiki performans acisindan pek güzel degil. belki hazir bir fonksiyonda vardir php icin.
di Mesaj tarihi: Ekim 14, 2009 Mesaj tarihi: Ekim 14, 2009 Kafanin karismadigi sey var mi ki diyecegim ariza cikacak. Demedim varsayalim =P =) if(count($deneme) >= count($deneme2) $count = count($deneme) else $count = count($deneme2); for($t=0;$t<$count;$t++){ // $deneme[$t] ile $deneme2[$t]'yi karsilastir istedigin gibi. } ?>
Mum_Chamber Mesaj tarihi: Ekim 14, 2009 Mesaj tarihi: Ekim 14, 2009 di, senin yontemle (1,2,3,4) arrayi ile (2,3,4) u karsilastirirsan hic ortak uye bulmaz. eger manuel yapilacaksa deneme2'nin her uyesi icin in_array(deneme) yapip ona gore almak/elemek lazim. bir de, o bastaki if'i oyle yazagina soyle yazarsan daha okunabilir olur $count = count($deneme) >= count($deneme2) ? count($deneme) : count($deneme2)
di Mesaj tarihi: Ekim 14, 2009 Mesaj tarihi: Ekim 14, 2009 Evet dogru diyosun. Uyuyorum ben hala =) in_array ile bir quick fix eklemeyelim evet.
Pluton Mesaj tarihi: Ekim 14, 2009 Konuyu açan Mesaj tarihi: Ekim 14, 2009 di said: Kafanin karismadigi sey var mi ki diyecegim ariza cikacak. Demedim varsayalim =P =) if(count($deneme) >= count($deneme2) $count = count($deneme) else $count = count($deneme2); for($t=0;$t<$count;$t++){ // $deneme[$t] ile $deneme2[$t]'yi karsilastir istedigin gibi. } ?> kafam karıştı demedim ki. Ayrıca yukardaki kod ile neyi kontrol ediyon sen ben onu anlamadım kafana göre bişiler yazmışın dicem kızıcan demedim varsay. //Bu array('Seçenek1','Seçenek2','Seçenek2'); şeklindeyse olur kontrolü gerçekleştirir. array_diff($dizi1, array_flip($dizi2)); Bu kadar!
di Mesaj tarihi: Ekim 14, 2009 Mesaj tarihi: Ekim 14, 2009 Dogru karisti degil takildim demissin. Yalniz yazdigim seyi anlamadiysan yine var bir sorun.
Queen Mesaj tarihi: Ekim 14, 2009 Mesaj tarihi: Ekim 14, 2009 Büyük ihtimal htmlden geliyor 1=>true, 2=>true gibi o da key kısımlarını karşılaştırmak istiyor galiba.
Gazanfer Mesaj tarihi: Ekim 14, 2009 Mesaj tarihi: Ekim 14, 2009 phpnin sahane array fonksiyonlari var. cok ozel bisey yapilmiycaksa sirf karsilastirma icin for ya da foreach dondurulmesini pek verimli gormuyorum.
Brigand Mesaj tarihi: Ekim 14, 2009 Mesaj tarihi: Ekim 14, 2009 function x ( $arr , $possible ) { if ( $arr ) foreach ( $arr as $v ) if ( ! in_array ( $v , $possible ) ) return false; return true; }
Pluton Mesaj tarihi: Ekim 14, 2009 Konuyu açan Mesaj tarihi: Ekim 14, 2009 Mum_Chamber said: array_flip niye yahu? Yukarıda arkadaş yazmışda yine açıklayım. Başlığı aratan bulan falan olur dumur olmasın. şimdi $deneme = array('Hoppala','Deneme','Paticik','Ah bu gençlik'); alanlar bu şekilde $deneme2 diziside array(1,2,3,4,5); olarak geldiği için ee normal olarak karşılaştırma yapamıyor array_diff(); Onun yerine $deneme'nin değerlerini yer değiştiriyoruz sonra karşılaştırıyoruz.
Pluton Mesaj tarihi: Ekim 14, 2009 Konuyu açan Mesaj tarihi: Ekim 14, 2009 di said: Dogru karisti degil takildim demissin. Yalniz yazdigim seyi anlamadiysan yine var bir sorun. Evet ben anlamadım. Sen muhteşem ve şahane bir yol ile anlatmışsın zaten di abi özür dilerim
Mum_Chamber Mesaj tarihi: Ekim 14, 2009 Mesaj tarihi: Ekim 14, 2009 o zaman stringlerle de karsilastirma yapabilirsin. yok key'lerle yapacaksan array_keys daha hizli olur.
Brigand Mesaj tarihi: Ekim 14, 2009 Mesaj tarihi: Ekim 14, 2009 keyleri karıştırmamak lazım türkçe karakter olabilir gelen veride :)
Pluton Mesaj tarihi: Ekim 15, 2009 Konuyu açan Mesaj tarihi: Ekim 15, 2009 İşte gelen veride integer'dan başka değer yok =) ... ... ... gibi gidiyo ordan biliyorum =)
Brigand Mesaj tarihi: Ekim 15, 2009 Mesaj tarihi: Ekim 15, 2009 yazdığım fonksiyon o zaman işini görüyo olması lazım değil mi?
Pluton Mesaj tarihi: Ekim 15, 2009 Konuyu açan Mesaj tarihi: Ekim 15, 2009 Brigand said: yazdığım fonksiyon o zaman işini görüyo olması lazım değil mi? Evet evet görüyor. Ben daha sonra aramaya inanan olurda aynı sorunla karşılaşan olur diye ekledim ;)
Öne çıkan mesajlar