Php 如何在数组中传递多个值?
我有一个脚本,可以接收电话号码和金额。如下所示。然后对数组中的数据进行json编码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); 这适用于一个电话号码和一
$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
)
)