2016-11-16 76 views
0

我想傳遞一個數組,它已經將鍵定義爲一個函數參數,但是當我調用該函數時,它會爲該數組創建一組數字鍵。我怎樣才能讓它使用相同的密鑰?通過密鑰名稱php函數傳遞數組?

<?php 

$param = [ 
"foo" => "bar", 
"bar" => "foo", 
]; 

function amazonRequest($AmazonQuery) { 
    $url = array(); 
    foreach ($AmazonQuery as $key => $val) { 

    $key = str_replace("%7E", "~", rawurlencode($key)); 
    $val = str_replace("%7E", "~", rawurlencode($val)); 
    $url[] = "{$key}={$val}"; 

    print_r($url); 
} 
} 

amazonRequest($param); 
print_r($param); 
+3

'$網址[$關鍵] = 「{$鍵} = {$ VAL}」 ;'也許?如果我正確理解你的問題。 –

回答

1

您自動編號空數組:

$url[] = "{$key}={$val}";

當然它會從0開始 可以使用$url[$key] = "{$key}={$val}";,如果你想的鑰匙是相同的編號。

1

當你使用添加新項目到一個數組:$array[] = "something",這將增加一個索引鍵[0 => 'something', ...]始終爲0

開始。如果你想與一個關聯鍵(非測序或字符串)添加新項您需要定義鍵名:

// Since you get the key in your foreach loop, just add it like this: 
$url[$key] = "{$key}={$val}"; 

$url -array現在應該是這樣的:

[ 
    "foo" => "foo=bar", 
    "bar" => "bar=foo" 
]