2017-10-05 64 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。谢谢你的帮助。 :))) 祝你今天愉快 –