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ş:
Sağa ve yukarıdan aşağıya, soldan 2 bo...
2 boyutlu bir dizi tepe algılama...
Nasıl ruby hash değerleri ile karma bi...
Geçen C bir işlev için 2 BOYUTLU bir d...
En hızlı C 2 boyutlu bir dizi sıfır şe...