我有一个接收电话号码和金额的脚本。如下所示。然后你json编码数组中的数据。
$phoneNumber = "+234424321";
$amount = "120.00";
$recipients = array(
array("phoneNumber"=>"$phoneNumber", "amount"=>"$amount")
);
$recipientStringFormat = json_encode($recipients);
这适用于一个电话号码和一个金额。我想扩大规模,如果有人上传说csv文件有两列电话号码和数量,他们可以填充电话号码和金额,他们都转换为数组和json编码。
有人会帮助在PHP中做到这一点吗?谢谢。
答案 0 :(得分:1)
假设我们有一个文件recipients.csv
,其中包含以下内容:
+234424321,120.00
+334424321,130.00
+444424321,1440.00
+554424321,155.50
要获得具有所需详细信息的多维数组,请使用以下方法。
使用的函数:array_map
,str_getcsv
,array_combine
和file
:
$data = array_map(function($line){
return array_combine(['phoneNumber', 'amount'], str_getcsv($line));
}, file("new_products.csv"));
print_r($data);
输出(以上内容):
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
)
)
答案 1 :(得分:0)
当您使用数组数组时,它可以是这样的:
$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");
请根据您的需要为这些数组操作(如循环等)添加一些逻辑。
答案 2 :(得分:0)
试试这个:
$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);
产生的输出将是:
Array (
[0] => Array ( [phone_number] => +234424321 [amount] => 120 )
[1] => Array ( [phone_number] => +234424322 [amount] => 121 )
)
请注意,上面的for
循环仅供参考。关于如何在PHP中读取CSV文件的大量示例(例如this)。您可以迭代地读取该文件,直到EOF
,并按照此处的建议将变量存储在数组中。