2016-04-09 19 views
1

t1 mysql tablom var. AşağıdaArray_rand() değeri var mı?

veridir:

+-------+-------------+ 
| ID | type  | 
+---------------------+ 
| 1  | a   | 
| 2  | a   | 
| 3  | b   | 
| 4  | a   | 
+---------------------+ 

Ve ben benim aşağıda kodlama deneyin array_rand(1,2,4);

gibi, tip a göre array_rand istiyorum:

$qadfirst = DB::query("SELECT * FROM ".DB::table('t1')." WHERE type = 'a'"); 
while($radfirst = DB::fetch($qadfirst)){ 
    $arr = array($radfirst['id']); 
    implode(",",$arr); 
    $random_keys=array_rand($arr,1); 
    echo $arr[$random_keys[0]]."<br>"; 
}; 

ben W3School gelen $random_keys kullanmak ama hala çalışmıyor, kodlama nasıl çalışır? Teşekkür ederim.

+0

_ "Ben […] w3school kullanıyorum" _ - [Adam Savage sesini numaralandırarak] _Well, senin problemin var! _ - http://www.w3fools.com/ - Gerçekten git ve daha iyi bir öğretici bulmalısın bir site. – CBroe

cevap

1

Bu hat $arr = array($radfirst['id']); bu döngünün sonunda kendisine verilen tek bir değere sahip bir dizi neden olur döngü içinde veri tabanı, bir kimlik getirme $arr her değeri değiştirin. Eğer ID yoluyla döngü herhangi bir değişkeni sizi, veritabanından getir kimliğinizi alabilir ve $arr için tür dizi atayabilir ve $i ile endeks değeri artırmak veya

$arr array(1) 
    integer 4 

bu

<?php 
    $i = 0; 
    while($radfirst = DB::fetch($qadfirst)){ 
    $arr[$i++] = $radfirst['id']; 
    } 
    $random_keys = array_rand($arr, 1); 
    echo $arr[$random_keys]."<br>"; 
?> 

gibi bir şey yapın seçti. döngü dışında

, rasgele anahtarlarını almak ve $random_keys atamak array_rand($arr, 1) kullanıp random_keys değeri $arr için bir endeks değeri olarak kullanabilirsiniz. $arr[$random_keys].

+0

hayret yok .. sorunumu çöz, çok teşekkür ederim! –

+0

Hoş Geldiniz. Bunu bilmek isterim. – Fil