2016-11-16 73 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" 
]