2015-08-11 4 views
2

Привет, люди stackoverflow, мне нужно немного помочь с этим скриптом. Мне нужно изменить ключи массива. Ive получил этот скрипт:Сделать ключи массива user_id

$Pirmas = mysql_query("SELECT user_id FROM dotp_user_task_type WHERE user_task_types_id = '$select1'"); 
if ($Pirmas) { 
    while($row = mysql_fetch_array($Pirmas)){ 
     $firid[]=$row['user_id']; 
    } 
    $Pirmas=implode(",",$firid); 
    $Antras = mysql_query("SELECT user_contact FROM dotp_users WHERE user_id IN ($Pirmas)");          
    //$Nusers = mysql_query("SELECT CONCAT(contact_first_name, ' ', contact_last_name) as fullname FROM dotp_contacts WHERE user_id IN ($Nusers)"); 
    if ($Antras) { 
     while($row = mysql_fetch_array($Antras)) { 
      $secid[]=$row['user_contact']; 
     } 
     $Antras=implode(",",$secid); 
     $Trecias = mysql_query("SELECT CONCAT(contact_first_name, ' ', contact_last_name) as fullname FROM dotp_contacts WHERE contact_id IN ($Antras)"); 
     if ($Trecias) { 
      while($row = mysql_fetch_array($Trecias)) { 
       $thrid[]=$row['fullname']; 
      } 
      $key = array($Pirmas); 
      $thrid = array_combine($key, array_values($thrid)); 
      print_r($thrid); 

Этот скрипт должен принимать имя пользователя и фамилию из базы данных. Он печатает информацию, подобную этой

array 
(
[0] => John Malkovich, 
[1] => Tina Morgan 
) 

Таким образом, моя проблема в том, что мне нужен тот ключ этой информации, который будет идентификатором пользователя. Ive пытался принимать user_id, который находится в переменной $ firid и объединить его так:

$thrid = array_combine($firid, array_values($thrid)); 

Но он печатает:

[7] => John Malkovich, 
[14] => Tina Morgan 

И это должно быть 14 Джон. И 7 Тина. Пожалуйста, помогите мне.

+0

@NarendraSisodia Это не работает, потому что, когда есть больше людей здесь идентификатор в 'Массив ([0] => 38 [1] => 36 [2] => 13 [3] => 14) 'И вот когда я обращаюсь к массиву ([14] => Скотт 13 [13] => Ким 14 [36] => Вагнер 36 [38] => Том 38) 'Рядом с именем есть номер, как должно быть – McLaren

+0

Я не саи d, что его ответ –

ответ

2

Попробуйте это ..

 $useridval=array(); 
      $secid=array(); 
      $Antras = mysql_query("SELECT user_contact,user_id FROM dotp_users WHERE user_id IN ($Pirmas)");          

       if ($Antras) { 
        while($row = mysql_fetch_array($Antras)) { 
         $secid[]=$row['user_contact']; 
         $useridval[]=$row['user_id']; 
        } 
      } 
      for($i=0;$i<count($secid);$i++) 
      { 
        $Trecias = mysql_query("SELECT CONCAT(contact_first_name, ' ', contact_last_name) as fullname,contact_id FROM dotp_contacts WHERE contact_id = '$secid[$i]'"); 

          if ($Trecias) { 

    if(mysql_num_rows($Trecias)>0) 
    { 
$row = mysql_fetch_array($Trecias); 
            $thrid[$useridval[$i]]=$row['fullname']; 
    } 
           } 
      } 

       print_r($thrid); 
+0

Он должен быть противоположным, [14] => Джон Малкович, [7] => Тина Морган. Thats моя проблема:/ – McLaren

+0

Вы запустили этот код? –

+0

Е. Он работает отлично, только что я не контакт_ид, но user_id можно каким-то образом изменить его? – McLaren

0

Попробуйте это,

$firid = array_reverse($firid); //reverse the $firid array 
$thrid = array_combine($firid, array_values($thrid)); 
echo "<pre>";print_r($third); 

Спасибо :)

+0

Оно не workd, потому что, когда есть больше людей здесь идентификатор в 'Массив ( [0] => 38 [1] => 36 [2] => 13 [3] => 1) ' ' Массив ( [14] => Scott 13 [13] => Ким 1 [36] => Vagner 36 [38] => том 38 ) 'Рядом с названием есть число, как это должно быть – McLaren

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