SORU
12 Temmuz 2011, Salı


PHP çok boyutlu bir dizi arama

uid arama ve çok boyutlu dizi anahtar almak istiyorum nerede bir dizi var.

Örnekler

Varsayalım 2 boyutlu şu dizi var:

$userdb=Array
(
    (0) => Array
        (
            (uid) => '100',
            (name) => 'Sandra Shush',
            (url) => 'urlof100'
        ),

    (1) => Array
        (
            (uid) => '5465',
            (name) => 'Stefanie Mcmohn',
            (pic_square) => 'urlof100'
        ),

    (2) => Array
        (
            (uid) => '40489',
            (name) => 'Michael',
            (pic_square) => 'urlof40489'
        )
);

İşlevi search_by_uid(100) (ilk kullanıcı uıd) 0 dönmelidir arayın.

Fonksiyonu search_by_uid(40489) 2 dönmelidir arayın.

Döngüler yapmaya çalıştım, ama daha hızlı yürütülen bir kod istiyorum.

CEVAP
12 Temmuz 2011, Salı


function searchForId($id, $array) {
   foreach ($array as $key => $val) {
       if ($val['uid'] === $id) {
           return $key;
       }
   }
   return null;
}

Bu işe yarayacak. Şöyle demelisin:

$id = searchForId('100', $userdb);

Önemli olan bunu bilmek için kullanıyorsanız, === operatöre göre türleri var olmak tam olarak aynı, bu örnek için arama string ya da sadece kullanın == yerine ===.

Dayalıangorucevap. PHP daha sonraki sürümleri (>= 5.5.0)-liner kullanabilirsiniz.

$key = array_search('100', array_column($userdb, 'uid'));

İşte belgeleri: http://php.net/manual/en/function.array-column.php.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
Php

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • graham025

    graham025

    25 NİSAN 2006
  • Jabari Johnson

    Jabari Johns

    18 Ocak 2008
  • jat4011

    jat4011

    16 EKİM 2010