2017-10-05 63 views
0

我正在處理我的任務,當前端調用它時訪問特定的數組。 我的示例數據是這樣的訪問數組中的數組

{ 
    "data": [ 
     { 
      "name": "Jon Snow", 
      "id": "01-0001", 
     }, 
     { 
      "name": "Robert Stark", 
      "id": "01-0002" 
     }, 
     { 
      "name": "Sansa Stark", 
      "id": "01-002333" 
     }, 
     { 
      "name": "Arya Stark", 
      "id": "01-00012" 
     }, 
     { 
      "name": "Bran Stark", 
      "id": "01-0003" 
     }, 
     { 
      "name": "Rickon Stark", 
      "id": "01-0005" 
     } 

    ] 
} 

*在我的前端我有這樣的代碼*

selectedEmployee: any=null; 

    setActiveEmployee(employee: any) { 
     this.selectedEmployee = employee; 
     let myJSON = JSON.stringify(this.selectedEmployee); 
     this.perEmpLateEarly(); 
    } 

每當我選擇員工,我得到的是員工的ID。 所以在這裏,如果我選擇「ID」:「01-0001」它將返回第一個數組,它將保留其餘,如果我選擇「ID」:「01-0002」它將返回第二個和將保持休息等等。我如何在PHP中做到這一點?

在此先感謝

+0

你在哪裏「選擇ID」?前端還是後端?你的意思是在前端選擇ID併發送到後端? – Pheonix

+0

。每當我選擇id時,它都會發送到後端來獲取數據。 @Pheonix; –

回答

2

你會做從前端一個GET/POST HTTP請求,這將是這個樣子的

your_backend_page.php?id=<ID HERE> 

那麼「your_backend_page.php」看起來像如下:

$list = { "data": [ { .... }, { ... }] } // this is the array you have 

$idFromFrontEnd = $_GET["id"]; 

foreach ($list["data"] as $item) { // iterate over all items 
    if ($item["id"] == $idFromFrontEnd) { // check if id matches 
     echo json_decode($item);  // if matches, print this item 
    } 

} 

請注意,如果您有少量的物品,這種方法是可以的。對於更大的列表,您可能想要擁有一個數據庫,您可以在其中使用sql進行選擇。

+0

好@Phoenix。謝謝你的幫助。 :))) 祝你今天愉快 –