【问题标题】:foreach, explode and keeping data in same array [duplicate]foreach,爆炸并将数据保存在同一个数组中[重复]
【发布时间】:2020-12-12 22:15:47
【问题描述】:

我正在尝试将我的 example_data 转换为同一个数组:

$example_data = "FirstName=Test&LastName=TestLastName&Address=ExampleSt";
$explode1 = explode('&', $example_data);

$data_array = array();
foreach ($explode1 as $values)
{
    $explode2 = explode("=", $values);

    $field_name = $explode2[0];
    $field_value =  $explode2[1];

    $data_array[] = array(
        $field_name    =>    $field_value
        );
}                

echo json_encode($data_array); 

当前输出 - 分隔数组:

[{"FirstName":"Test"},{"LastName":"TestLastName"},{"Address":"ExampleSt"}]

我正在寻找的预期输出:

{"FirstName":Test,"LastName":TestLastName,"Address":ExampleSt}

【问题讨论】:

标签: php arrays json foreach


【解决方案1】:

在每次迭代中,您在$data_array 的末尾添加一个数组。相反,您可以直接使用 $field_name 作为键和 $field_value 作为值:

foreach ($explode1 as $values)
{
    $explode2 = explode("=", $values);

    $field_name = $explode2[0];
    $field_value =  $explode2[1];

    $data_array[$field_name] = $field_value; # Here!
}

编辑:
附带说明一下,PHP 有一个名为 parse_str 的内置函数,它可以为您完成所有这些繁重的工作:

$example_data = "FirstName=Test&LastName=TestLastName&Address=ExampleSt";
$data_array = array();
parse_str($example_data, $data_array);

【讨论】:

    【解决方案2】:

    有一个功能:

    parse_str($example_data, $data_array);
    echo json_encode($data_array);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-15
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多