2016-09-19 48 views
0

我有一個Web服務調用,就像這樣:PHP用一個/多個curl請求刪除多個項目?

$data = array(
    "id" => 1234, 
    "id" => 8348, 
    "id" => 9999, 
    "id" => 0473 
); // example 
$url = 'http://myurl'; // example 
$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); // data converts to json 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json', 
    'Accept: application/json' 
)); 
$result = curl_exec($ch); 

的$數據包含要刪除的項目的id的(這是唯一需要的參數)。當我想要刪除一個項目(一個ID)時,我已經完成了它的工作,但我無法找到如何使它可以一次刪除多個項目。使用這種方法,它只會刪除列表中的最後一個,這是合乎邏輯的,因爲每個較新的條目都會覆蓋前一個條目。

我試過存儲過id,併爲數組中的每個id做了一個web服務調用,但這似乎不起作用,或者我只是沒有做正確的事。

這是如何實現的?

回答

0

$data數組將包含一個項目,因爲您對數組中的所有元素使用相同索引「id」。 所以

$data = array(
    "id" => 1234, 
    "id" => 8348, 
    "id" => 9999, 
    "id" => 0473 
); 

傳輸
$data = array(
    "id" => 0473 
); 

json_encode($data)輸出爲

{"id":473} 

爲了解決您可以添加數字來ID這樣的問題:

$data = array(
    "id1" => 1234, 
    "id2" => 8348, 
    "id3" => 9999, 
    "id4" => 0473 
); 

或通過ID作爲一個嵌套的數組,我建議json_encode($data)

$data = array(
    "id" => array(1234,8348,9999,473) 
); 

輸出是

{"id":[1234,8348,9999,473]} 
0

這個問題必須要問到寫的API的人。我們可以猜測答案。

我的猜測:

$data = array(
    "id" => array(
     1234, 
     8348, 
     9999, 
     0473 
    ) 
);