PHP JavaScript eşdeğer'In in_array() | Netgez.com
SORU
23 NÄ°SAN 2009, PERÅžEMBE


PHP JavaScript eÅŸdeÄŸer'In in_array()

JavaScript bir şekilde bir diziden değerleri karşılaştırmak ve eğer başka bir dizi olup olmadığını görmek için var mı?

Benzer in_array. PHP iÅŸlevi?

CEVAP
23 NÄ°SAN 2009, PERÅžEMBE


Hayır, kimse yok. Bu nedenle en popüler kütüphaneler yarar paketlerinden biri ile birlikte gelir. Bu bir WordPress kullanmak göz atıninArrayve PrototipArray.indexOförnekler için.

bu jQuery uygulaması tahmin edebileceğiniz gibi: bu kadar basit

function inArray(needle, haystack) {
    var length = haystack.length;
    for(var i = 0; i < length; i  ) {
        if(haystack[i] == needle) return true;
    }
    return false;
}

Eğer dizi elemanlarının aklı başında bir miktar ile ilgili ise yukarıdaki güzel hile yapacak.

EDİT: Hoppala. Bile bir dizi başka içinde görmek istediğini fark etmedim. PHP belgelerine göre bu PHP beklenen davranış in_array.

$a = array(array('p', 'h'), array('p', 'r'), 'o');

if (in_array(array('p', 'h'), $a)) {
    echo "'ph' was found\n";
}

if (in_array(array('f', 'i'), $a)) {
    echo "'fi' was found\n";
}

if (in_array('o', $a)) {
    echo "'o' was found\n";
}

// Output:
//  'ph' was found
//  'o' was found

Kodu Chris ve Alex tarafından yayınlanan bu davranış izleyin. Alex'in Prototipi adres bilgisi resmi sürümü ve Chris'in array_intersect daha çok PHP. Bu senden ne istiyor:

function arrayCompare(a1, a2) {
    if (a1.length != a2.length) return false;
    var length = a2.length;
    for (var i = 0; i < length; i  ) {
        if (a1[i] !== a2[i]) return false;
    }
    return true;
}

function inArray(needle, haystack) {
    var length = haystack.length;
    for(var i = 0; i < length; i  ) {
        if(typeof haystack[i] == 'object') {
            if(arrayCompare(haystack[i], needle)) return true;
        } else {
            if(haystack[i] == needle) return true;
        }
    }
    return false;
}

Ve bu yukarıdaki: benim test

var a = [['p','h'],['p','r'],'o'];
if(inArray(['p','h'], a)) {
    alert('ph was found');
}
if(inArray(['f','i'], a)) {
    alert('fi was found');
}
if(inArray('o', a)) {
    alert('o was found');
}  
// Results:
//   alerts 'ph' was found
//   alerts 'o' was found

Ben kasıtlı olarak genellikle bunu yapmak için kötü bir fikir olduğu gibi Dizi prototip içermiyordu unutmayın.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • BrandonHarrisWalker

    BrandonHarri

    27 Kasım 2006
  • SellerDp

    SellerDp

    27 EKÄ°M 2009