2016-02-28 2 views
0

У меня есть массив значений, запрашиваемых из базы данных, $roundsarray.Показать массив ключей, когда задано определенное значение

Другой запрос возвращает набор значений, которые являются одними и теми же в массиве. Однако, вместо отображения значений, я хочу отобразить их как ключ. Мой код выглядит следующим образом:

$datarounds=mysql_query("SELECT DISTINCT eventID FROM results WHERE (eventID BETWEEN '$firstevent' AND '$lastevent') AND compId='$compId' AND teamId='$teamid' AND (eventSession='R' OR eventSession='R1' OR eventSession='R2' OR eventSession='R3') AND driverId='$driversource' ORDER BY eventID", $CONNECTW);   
while($row=mysql_fetch_row($datarounds)) 
{ 
    $roundid=$row[0]; 
    foreach ($roundsarray as $k => $value) 
    { 
     if ($roundid==$value) { $rounddisplay=$k+1; } 

     $roundpack .= "$rounddisplay,"; 
    } 

$datarounds запросов предоставляет идентификаторы событий, и то, что я пытаюсь сделать, это показать, что конкретное событие является третьим, четвёртым, 12 или что-то в массиве ($k+1 должен учитывать первое значение массива, являющееся ключом 0).

Однако $rounddisplay всегда возвращается пустым, и я не могу понять, что я делаю неправильно. Спасибо за любую помощь!

+0

Я не могу понять ваш вопрос. Можно ли объяснить? –

+0

Несомненно! У меня есть массив $ roundsarray, элементы которого при печати следующие: ([0] => Массив ([id] => 598) [1] => Массив ([id] => 602) [2] => Массив ([id] => 607) ... и т. Д. Второй запрос, $ datarounds, предоставляет результаты, такие как «602», «607» и т. Д. Я хочу найти способ чтобы он отображался, если результат равен 602, «1», если это 607, «2» и т. д. –

+0

Вы хотите совместить второй массив с согласованными позициями в 1-м массиве. –

ответ

1

Вы должны найти: array_search, чтобы получить ключи.

Отметьте эту ссылку php.net/manual/en/function.array-search.phparray_search, чтобы найти ключи, а затем отобразить их в новый массив.

Смежные вопросы