Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用内爆从数组中输出编号列表?_Php_Arrays_Implode - Fatal编程技术网

Php 使用内爆从数组中输出编号列表?

Php 使用内爆从数组中输出编号列表?,php,arrays,implode,Php,Arrays,Implode,我已经花了几个小时试图弄明白这一点,但作为一名PHP新手,我正努力想办法解决这个问题 我试图将多个编号的项目传递给AmazonAPI。我的数组$asins充满了我需要的所有刺 这是我的阵列: $asins = array('STRING_1', 'STRING_2', 'STRING_3'); 我需要以以下格式输出: ASINList.ASIN.1=STRING_1&ASINList.ASIN.2=STRING_2&ASINList.ASIN.3=STRING_3 数组将始终

我已经花了几个小时试图弄明白这一点,但作为一名PHP新手,我正努力想办法解决这个问题

我试图将多个编号的项目传递给AmazonAPI。我的数组$asins充满了我需要的所有刺

这是我的阵列:

$asins = array('STRING_1', 'STRING_2', 'STRING_3');
我需要以以下格式输出:

ASINList.ASIN.1=STRING_1&ASINList.ASIN.2=STRING_2&ASINList.ASIN.3=STRING_3
数组将始终包含这些字符串中的25个

我意识到这可能是难以置信的简单,但任何提示都将不胜感激。我喜欢学习

用于简单数组1、2、3。。。但是您的是一个复杂的数组f1=v1,f2=v2,因此请使用for循环来控制字符串的生成方式,例如:

$output = "";

for ($i = 0; $i < count($array); $i++) {

    $output .= "ASINList.ASIN.$i" . "=" . $array[$i] . "&";
}

echo $output;
这段代码应该可以完成它。 数组键始终从“0”开始。在你的情况下,你需要“1”

$array = array('STRING_1', 'STRING_2', 'STRING_3');
$URLparameters = array();

foreach( $array as $key => $value ){
    $newkey = $key + 1;
    $URLparameters[] = "ASINList.ASIN.".$newkey."=".$value;
}

$result = implode("&", $URLparameters);
[编辑]基于Emiliano Sangoi的想法

$a = array('ASINList.ASIN.1', 'ASINList.ASIN.2', 'ASINList.ASIN.3');
$b = array('STRING_1', 'STRING_2', 'STRING_3');
$c = array_combine($a, $b);

echo http_build_query($c);

如果您以以下方式保留您的论点:

$asins = array(
        "ASINList.ASIN.1" => 'STRING_1',
        "ASINList.ASIN.2" => 'STRING_2',
        "ASINList.ASIN.3" => 'STRING_3'
    );
您需要做的唯一一件事是:

echo http_build_query($asins);

请向我们显示您的阵列+您当前的代码张贴您的尝试。到目前为止,您尝试过的代码的结果是:ASINList.ASIN.0=STRING_1&ASINList.ASIN.1=STRING_2&ASINList.ASIN.2=STRING_3&因为数组键,它在末尾添加了一个额外的“&”。谢谢你也解释了答案。。。我可以看出这背后的逻辑: