Php 如何在数组中传递多个值?

Php 如何在数组中传递多个值?,php,arrays,json,object,Php,Arrays,Json,Object,我有一个脚本,可以接收电话号码和金额。如下所示。然后对数组中的数据进行json编码 $phoneNumber = "+234424321"; $amount = "120.00"; $recipients = array( array("phoneNumber"=>"$phoneNumber", "amount"=>"$amount") ); $recipientStringFormat = json_encode($recipients); 这适用于一个电话号码和一

我有一个脚本,可以接收电话号码和金额。如下所示。然后对数组中的数据进行json编码

$phoneNumber = "+234424321";

$amount = "120.00";

$recipients = array(
    array("phoneNumber"=>"$phoneNumber", "amount"=>"$amount")
); 
$recipientStringFormat = json_encode($recipients);
这适用于一个电话号码和一个金额。我想将其放大,这样,如果有人上传一个csv文件,其中包含两列电话号码和金额,他们可以填充电话号码和金额,并将其全部转换为数组和json编码


有人愿意帮助用PHP完成这项工作吗?谢谢。

当您使用数组数组时,它可以是这样的:

$recipients = array(
    array("phoneNumber"=>"$phoneNumber1", "amount"=>"$amount1"),
    array("phoneNumber"=>"$phoneNumber2", "amount"=>"$amount2")
);
还是这样

$recipients = array();
$recipients[] = array("phoneNumber"=>"$phoneNumber1", "amount"=>"$amount1");
$recipients[] = array("phoneNumber"=>"$phoneNumber2", "amount"=>"$amount2");
请根据您的需要为这些阵列操作(如循环等)添加一些逻辑。

尝试以下操作:

$recipients = array();
$phone_number = "+234424321";
$amount = "120.00"; 

for($i=0; $i<2; $i++){
    $recipients[$i]["phone_number"] = "+" . $phone_number + $i;
    $recipients[$i]["amount"]       = $amount + $i;
}

print_r($recipients);


请注意,上面的
for
循环仅供参考。有很多关于如何在PHP中读取CSV文件的示例(例如)。您可以反复读取该文件,直到
EOF
,并按照此处的建议将变量存储在数组中。

假设我们有一个包含以下内容的文件
recipients.csv

+234424321,120.00
+334424321,130.00
+444424321,1440.00
+554424321,155.50
Array
(
    [0] => Array
        (
            [phoneNumber] => +234424321
            [amount] => 120.00
        )

    [1] => Array
        (
            [phoneNumber] => +334424321
            [amount] => 130.00
        )

    [2] => Array
        (
            [phoneNumber] => +444424321
            [amount] => 1440.00
        )

    [3] => Array
        (
            [phoneNumber] => +554424321
            [amount] => 155.50
        )

)
要获得具有所需详细信息的多维数组,请使用以下方法。
使用的函数:
array\u map
str\u getcsv
array\u combine
file

$data = array_map(function($line){
    return array_combine(['phoneNumber', 'amount'], str_getcsv($line));
}, file("new_products.csv"));

print_r($data);
输出(针对上述内容):


请注意,PHP数组不允许重复键。因此,您能否显示预期数组的外观?
$recipients=array(array(“phoneNumber”=>“+599595”,“amount”=>“10.00”)array(“phoneNumber”=>“+51553678”,“amount”=>“10.00”)所以他们希望通过这种方式传递详细信息。那么我如何扩展它,以便如果有人上传一个文件(比如csv文件),它会很好地填充该文件,并根据需要传递@RomanPerekhrest善意的建议Hi,我如何添加循环?基本上,我希望有人上传一个文件,比如1000行,两列,一个电话号码和数量,然后以这种方式填充。--><代码>$recipients=数组(数组(“电话号码”=>“+599595”,“金额”=>“10.00”)数组(“电话号码”=>“+51553678”,“金额”=>“10.00”)这是必需的格式。请阅读如何解析CSV文件。您必须使用任何循环(如
for
while
)逐行读取这些文件。
Array
(
    [0] => Array
        (
            [phoneNumber] => +234424321
            [amount] => 120.00
        )

    [1] => Array
        (
            [phoneNumber] => +334424321
            [amount] => 130.00
        )

    [2] => Array
        (
            [phoneNumber] => +444424321
            [amount] => 1440.00
        )

    [3] => Array
        (
            [phoneNumber] => +554424321
            [amount] => 155.50
        )

)