用于数组的PHP方括号

时间:2015-06-03 14:32:33

标签: php arrays

我正在尝试使用Phaxio API发送多个文件,但我无法通过他们的[]符号。

为了传递多个文件,DO工作所需的参数是:

这有效:

"filename[]"=>"@file1.pdf", "@file2.pdf", "@file3.pdf"

如何在实际数组中生成右侧(值),例如$ files = array(“file1.pdf”,“$ file2.pdf”,“file3.pdf”);

到目前为止,语法对我来说没有用,我试过了:

这些不起作用:

"filename[]"=>array("@file1.pdf", "@file2.pdf", "@file3.pdf")

OR

"filename"=>array("@file1.pdf", "@file2.pdf", "@file3.pdf")

OR

"filename"=>"@file1.pdf, @file2.pdf, @file3.pdf"

我使用的是PHP 5.3.10

有效的符号会产生以下几点:

[filename[]]=>"@file1.pdf",
[0]=>"@file2.pdf",
[1]=>"@file3.pdf"

<小时/> @Halcyon:

我尝试了以下内容:

$files =array("filename" => array("@uploads/invite_template.pdf", "@uploads/2.pdf"));

$data = array(
            "to"=>"$faxToNumber", 
            "filename[]"=>$files
             );

我不能只是将数组添加到它,因为它是一个关联数组(例如:)

$data = array(
            "to"=>"$faxToNumber", 
             $files
             );

我可以添加到数据数组中,并且它会使它工作但是......如何使它按照编码方式工作?

到目前为止这种方式正常:

$data += array("filename[0]"=>"@uploads/1.pdf");
$data += array("filename[1]"=>"@uploads/2.pdf");

1 个答案:

答案 0 :(得分:1)

假设这只是一个URL编码的主体,它应该看起来像:

filename[]=value1&filename[]=value2&filename[]=value3

在PHP中你无法做到:

array(
    "filename[]" => "value1",
    "filename[]" => "value2"
)

因为您有重复的密钥。你能做的是:

array(
    "filename" => array("value1", "value2")
)

并在发送时按上述方式对其进行编码。

这也有效:

array(
    "filename[0]" => "value1",
    "filename[1]" => "value2",
    "filename[2]" => "value3"
)