2017-08-30 46 views
0

尝试达到我想要的结果。但不幸的是,在几个小时后我无法实现这一点。到目前为止,我的尝试:现在多维数组在php中重新格式化

$post_data = array(
    'email_address' => "sda", 
    'status_if_new' => 'subscribed', 
    'merge_fields' => array(

     'FNAME' => "asd", 
     'LNAME' => "sad") 
); 
$st= "{\"Field0\":\"Value0\",\"Field1\":\"Value1\"}"; 
$string = str_replace(array('{','}','"'),'',$st); 

$custom_array=explode(",",$string); 

$len= count($custom_array); 


for($i=0;$i<$len;$i++) { 
    $fields = explode(":", $custom_array[$i]); 

    array_push($post_data["merge_fields"],$fields); 
} 
echo "<pre>"; 
var_dump($post_data); 
die("sad"); 

结果:字符串格式化后,推动该字符串到数组。

array(3) { 
    ["email_address"]=> 
    string(3) "sda" 
    ["status_if_new"]=> 
    string(10) "subscribed" 
    ["merge_fields"]=> 
    array(4) { 
    ["FNAME"]=> 
    string(3) "asd" 
    ["LNAME"]=> 
    string(3) "sad" 
    [0]=> 
    array(2) { 
     [0]=> 
     string(6) "Field0" 
     [1]=> 
     string(6) "Value0" 
    } 
    [1]=> 
    array(2) { 
     [0]=> 
     string(6) "Field1" 
     [1]=> 
     string(6) "Value1" 
    } 
    } 
} 
sad 

我想要什么来实现的:,但我想做到这一点有点不同,你可以看到如下:

array(3) { 
    ["email_address"]=> 
    string(3) "sda" 
    ["status_if_new"]=> 
    string(10) "subscribed" 
    ["merge_fields"]=> 
    array(4) { 
    ["FNAME"]=> 
    string(3) "asd" 
    ["LNAME"]=> 
    string(3) "sad" 
    ["Field0"]=> 
    string(6) "Value0" 
    ["Field1"]=> 
    string(6) "Value1" 
} 
} 
sad 

如果有任何问题,请随时问我。 有人吗?为了帮助我实现我想要的结果? TIA。

回答

0

使用$post_data["merge_fields"][$fields[0]] = $fields[1]
而不是 array_push($post_data["merge_fields"],$fields);

+0

谢谢你这么多@Agrawal –

0
$post_data = array(
'email_address' => "sda", 
'status_if_new' => 'subscribed', 
'merge_fields' => array(

    'FNAME' => "asd", 
    'LNAME' => "sad") 
); 
$st= "{\"Field0\":\"Value0\",\"Field1\":\"Value1\"}"; 
$string = str_replace(array('{','}','"'),'',$st); 


$custom_array=explode(",",$string); 

$len= count($custom_array); 


for($i=0;$i<$len;$i++) { 
    $fields = explode(":", $custom_array[$i]); 

    $post_data["merge_fields"][$fields[0]] = $fields[1]; 
} 
echo "<pre>"; 
var_dump($post_data); 
die("sad");