dizi anahtarları, değerleri karşılaştırmak php

4 Cevap php

Php.net tarafından açıklandığı gibi başarıyla) (array_key_exists kullanıyorum

Örnek:

<?php
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
    echo "The 'first' element is in the array";
}
?>

Ancak, değerlerini almak ve çalışmıyor.

<?php
$search_array = array('first', 'second');
if (array_key_exists('first', $search_array)) {
    echo "The 'first' element is in the array";
}
?>

Değil, yalnızca kendi tuşları ile 2 dizileri karşılaştırmak nasıl emin.

4 Cevap

Atanan değerlerle tuşları: İlk örnek bir ilişkisel dizidir. İkinci örnek söyleyerek sadece güzel bir yoldur:

array(0 => 'first', 1 => 'second')

An için, kullanmak gerekir in_array. Bu array_key_exists yapar ki, bir anahtarın varlığını kontrol fakat in_array yapan bir değeri, daha çok varlığı. Olmamalıdır

if(in_array('first', $array))

key ve value: PHP, bir dizideki her öğe iki bölümden oluşmaktadır.

El her değere bağlı istediklerini tuşları söylemek sürece, PHP, her elemanını 1 arttırılmış, 0'dan başlayan bir sayısal dizin verir.

Böylece arasındaki fark

array('first','second')

ve

array('first'=>1,'second'=>4)

is that the first doesn't have user-defined keys. (It actually has the keys 0 ve 1)

Eğer ilk günü print_r() yapmak olsaydı, bu gibi bir şey söyleyebilirim

Array {
    [0] => "first",
    [1] => "second"
}

İkinci benziyor oysa

Array {
    ["first"]  => 1,
    ["second"] => 2
}

key "ilk" var, kullanmak olurdu Yani, kontrol etmek

array_key_exists('first',$search_array);

value "ilk" var, kullanmak olsaydı kontrol etmek

in_array('first',$search_array);

İkinci örnekte, sen dizi anahtarları atamadı - sadece nesnelerin temel bir "liste" kurmak

Bir değer düzenli bir dizide ise in_array("first", $search_array); kontrol etmek için kullanmak

Ikinci örnekte tuşlar sayısal olduğunuzu $search_array aslında bu gibi görünüyor:

array(0=>'first', 1=>'second');

bu yüzden key 'ilk' yok, value 'ilk' yapar. bu yüzden

in_array('first', $search_array);

Eğer kullanmak isteyeyim fonksiyonudur.