2012-04-04 5 views
0

у меня есть этот массивPHP Как получить случайное значение из массива

$row4 = mysql_fetch_array($sql_res);

может кто-нибудь помочь мне, как получить случайное значение $row4['response']?

в $row4 не имеют постоянные значения ...
но сейчас $row4 содержит

Array ([0] => 3 [id] => 3 [1] => where is dryad [react] => where is dryad [2] => Dryad is found in the farthest part of the Dark wilderness. [response] => Dryad is found in the farthest part of the Dark wilderness. [3] => [review] =>) 1 
+0

Что содержит $ row4 ['response']? – Salepate

+3

См. Http://php.net/array-rand – Pete

+1

Или вы хотите случайный ряд? http://stackoverflow.com/questions/19412/how-to-request-a-random-row-in-sql – alberge

ответ

3

Как ваш код прямо сейчас, вы бы только получить обратно одну строку запроса. Эта строка просто будет содержать ваши значения полей для этой строки. Если вы на самом деле просто пытаетесь получить случайное значение поля из этой одной строки, вы должны использовать:

$randomKey = array_rand($row4,1); 

Если вы имели в виде, чтобы попросить случайную строку из вашего запроса, вы можете сделать это одним из двух способов:

1) Используйте array_rand, чтобы захватить случайную строку и поместить в $randomRow:

while($row = mysql_fetch_array($sql_res)) $rows[] = $row; 
$randomRow = array_rand($rows); 

2) в запросе можно указать только захватить 1 случайную строку, а не каждый результат:

SELECT col1 FROM tbl ORDER BY RAND() LIMIT 1;

+0

сэр вы можете мне рассказать как .. .. получить значение ответа случайной строки ???? я только хочу случайный ответ –

+0

Я попытался $ randomKey ['response'], но никакого результата .... –

+0

Если вы используете метод $ randomKey, то tat означает, что вы не получаете массив, только одно случайное значение из вашего строка возвращается. Если вы хотите ссылаться на случайную строку (которая будет массивом), используйте один из других методов. – VictorKilo