Ben bir dizi var ve bu dizi gibi bir dizi anahtar var, show_me_160
bu dizi anahtar biraz değişebilir, bu yüzden bazen sayfa yükleyebilir ve dizi anahtar belki show_me_120
, şimdi sadece dize maç mümkün olmak istiyorum dizinin son _
'e kadar kilitlenmesini sağlayın, böylece değerin son alt çizgiden sonra ne olduğunu kontrol edebilirim?kısmi dizgeye dayalı bir dizi anahtarı seçmek
cevap
tek çözüm: (I varsayarak doğrudan diziyi sorgulamak imkanı olmadığı için
foreach($myarray as $key=>$value){
if("show_me_" == substr($key,0,8)){
$number = substr($key,strrpos($key,'_'));
// do whatever you need to with $number...
}
}
için preg_metch işlevine bir geriçağırım işlevi kullanın, üzerinde çalıştığım şey için bunu düşündüm ama büyük dizilerde ağrılı bir şekilde yavaş olacağından şüpheleniyorum. ! '(! Strpos ($ k 'show_me_') == false)' 'olmalı if (strpos ($ v eğer, 'show_me_') ==: – GordonM
Eğer ayrı ayrı anahtar kontrol etmek için diziyi sürekli tekrarlanması gerekir dizi de tamamen alakasız anahtarlarını tutan, ancak bu durumda) değil eğer if
bölümü atlayabilirsiniz: ancak
foreach($array as $k => $v)
{
if (strpos($k, 'show_me_') !== false)
{
$number = substr($k, strrpos($k, '_'));
}
}
, bu verileri depolamak çok garip bir yol gibi geliyor, ve senin yerinde olsaydım, ben d Başka bir yol olmadığını kontrol edin (daha verimli)
foreach($array as $str) {
if(preg_match('/^show_me_(\d+)$/',$str,$m)) {
echo "Array element ",$str," matched and number = ",$m[1],"\n";
}
}
Bu notu olsa bu hat olduğunu, benim durumumda benim için çalışıyor yanlış) ' – freestate
Ayrıca preg_match
tabanlı çözümü kullanabilirsiniz.
$value = $my_array[current(preg_grep('/^show_me_/', array_keys($my_array)))];
Geçenlerde benzer bir sorun koştu:; uygulamanızda etrafında verileri geçme)
foreach($myarray as $key=>$value)
if(count(explode('show_me_',$event_key)) > 1){
//if array key contains show_me_
}
Daha bilgi (örnek): Bu benim ile geldi budur
dizi anahtarı 'show_me_' içeriyorsa
$ örneği = ('show_me_' patlayabilir,' show_me_120');
print_r ($ örneği)
Array ([0] => [1] => 120)
print_r (sayım ($ örneği))
2
print_r
120
kod bu parça ne anlama geldiğini daha detaylı bir şekilde açıklayabilir misiniz? dizi anahtarı $ örnek 'show_me_' içeriyorsa –
= patlayabilir ('show_me _' 'show_me_120'); $ örneğidir: Array ([0] => [1] => 120) sayısı ($ örneğin) aşağıdaki gibidir: ** 2 ** $ örneğin [1] olduğu: ** 120 * * – user5510975
Neden Gereklidir iki işlev Eğer alt dize veya strpos kullanabilirsiniz eğer, (patlayabilir ve sayım)? –
- 1. PHP Dizisi, bir değerine dayalı anahtarı almak
- 2. Kullanıcıya dayalı bir veritabanı seçmek nasıl kullanılır?
- 3. GO: düzenli dizgeye dizi/dilim
- 4. Kısmi özniteliğe dayalı HTML bul
- 5. Javascript'te tip-dizgeye dayalı olarak yeni bir nesneyi nasıl oluşturabilirim?
- 6. Bir dizi düğüm seçmek için xpath nedir?
- 7. Dizeleri bir dizgeye dönüştürün
- 8. Nesne anahtarı olarak dizi değişmezi?
- 9. Rust'ta açık kısmi dizi başlatımı
- 10. PDO dizi grubu anahtarı olarak PDO fetchAll() birincil anahtarı
- 11. Lo-çizgi sıralama dizi dize değerine dayalı
- 12. Dizgeyi dizgeye ve arkaya dönüştürme
- 13. Java'da bir harita anahtarı olarak bir dizi kullanmak mümkün mü?
- 14. Öğeyi seçmek için seçenekler olarak nasıl bir dizi verebilirim?
- 15. R: Satırı Hesaplama sütun adı kısmi maç dayalı demek
- 16. dizgeye bir işlev çağrısı zorla
- 17. PHP - Veritabanını bir dizgeye dönüştürün
- 18. Yapılandırma özellikleri bir dizi/liste oluşturmak için aynı anahtarı kullanarak
- 19. C'deki bir dizi dizinin kısmi başlatılması olduğunda ne olur?
- 20. Ruby'de bir onaltılık dizgeye bir tamsayı dönüştürme
- 21. Django kalıp dizgeye dönüştür
- 22. Aktarımı standart dizgeye dönüştürmek
- 23. Grup, alt dizgeye göre
- 24. Dizgeye geçme dönemi
- 25. string dizgeye dönüş
- 26. "Bu" işaretçisini dizgeye dönüştür
- 27. wchar_t * dizesinin dizgeye dönüştürülmesi
- 28. Türetilmiş sınıfa dayalı olarak temel yapıcıda dizi nasıl ayrılır?
- 29. Her yeri bulmak bir enum dizgeye dönüştürülür
- 30. kısmi
Bir verebilir ([1] $ örnek) örnek? – Gumbo
array_map ve '#show_me _ ([\ d]) + #' – Hannes