2014-06-19 46 views
1

我有一些代碼(如下),它獲取兩個數組,一個用逗號分隔的聲明產品的用戶列表和一個對應的逗號分隔時間列表。然後,它將user_id與users表匹配,並獲取多個數組中的用戶信息。我想將相應的claims_time附加到每個輸出數組中,但無法弄清楚如何去做。添加密鑰到多個數組並填充該密鑰的值,以便與來自另一個有序數組的對應值相關聯

$q = "SELECT claimed_by, claimed_time FROM post WHERE post_id='$post_id' AND accepted_user='' AND user_id='$id'"; 
    $r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc)); 

    if (mysqli_num_rows($r) == 1) { 
       $postrow = mysqli_fetch_array($r,MYSQLI_ASSOC); 
       $arr = explode(',', $postrow['claimed_by']); 
       $arr2 = explode(',', $postrow['claimed_time']); 

$users = array(); 
$r = mysqli_query($dbc,"SELECT * FROM users 
WHERE id in (".implode(',',$arr).")"); 
$count=0; 
while($row = $r->fetch_assoc()){ 
    $multiple_row_result[] = $row; 
} 


echo json_encode($multiple_row_result);//result 

我試圖把下面進入while循環,但沒有成功:

$multiple_row_result['claimed_time']=$arr2 

我想沿着foreach語句可能會工作線的東西,但不能得到任何工作。

謝謝。

回答

1

如果重構了表結構,那麼執行此操作會更容易。

但在當前的格式,你可以不喜歡

while($row = $r->fetch_assoc()){ 

    //get the key from the id array - $arr 
    $key = array_search($row['id'], $arr); 

    //get the claimed_time for the id using the $key and add to $row 
    $row['claimed_time'] = $arr2[$key]; 

    $multiple_row_result[] = $row; 
} 
+0

工作就像一個魅力。我從來沒有使用過array_search,但我很高興我知道它現在存在。肯定會派上用場。謝謝! – user3745602

+1

很高興幫助。在php中有很多有價值的內置函數,你可以通過搜索文檔來使用 - 即。 ['array_search()' - http://www.php.net//manual/en/function.array-search.php](http://www.php.net//manual/en/function.array- search.php中) – Sean

相關問題