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

时间:2017-01-27 19:10:36

标签: php arrays json object

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

$phoneNumber = "+234424321";

$amount = "120.00";

$recipients = array(
    array("phoneNumber"=>"$phoneNumber", "amount"=>"$amount")
); 
$recipientStringFormat = json_encode($recipients);

这适用于一个电话号码和一个金额。我想扩大规模,如果有人上传说csv文件有两列电话号码和数量,他们可以填充电话号码和金额,他们都转换为数组和json编码。

有人会帮助在PHP中做到这一点吗?谢谢。

3 个答案:

答案 0 :(得分:1)

假设我们有一个文件recipients.csv,其中包含以下内容:

+234424321,120.00
+334424321,130.00
+444424321,1440.00
+554424321,155.50

要获得具有所需详细信息的多维数组,请使用以下方法。
使用的函数:array_mapstr_getcsvarray_combinefile

$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
        )

)

http://php.net/manual/en/function.str-getcsv.php

答案 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,并按照此处的建议将变量存储在数组中。