将PHP字符串转换为多维数组

将PHP字符串转换为多维数组,php,arrays,explode,Php,Arrays,Explode,我有一个字符串如下 Domain Status: ok https://icann.org/epp#ok Registry Registrant ID: REDACTED Registrant Name: REDACTED Registrant Organization: X Registrant Street: REDACTED Registrant City: REDACTED Registrant State/Province: Western Registrant Postal Code

我有一个字符串如下

Domain Status: ok https://icann.org/epp#ok
Registry Registrant ID: REDACTED
Registrant Name: REDACTED
Registrant Organization: X
Registrant Street: REDACTED
Registrant City: REDACTED
Registrant State/Province: Western
Registrant Postal Code: REDACTED
Registrant Country: US
Registrant Phone: REDACTED
Registrant Phone Ext: REDACTED
Registrant Fax: REDACTED
Registrant Fax Ext: REDACTED
我正在尝试将此字符串转换为具有键/值对的数组。例如,注册城市作为关键字,然后编辑为值

我试图把它炸开,但根本没有结果


感谢您的帮助。

只需分成几行,然后用冒号分开即可。如果不需要,可以在之后将第一个密钥对移开

<?php

$data =<<<DATA
Domain Status: ok https://icann.org/epp#ok
Registry Registrant ID: REDACTED
Registrant Name: REDACTED
Registrant Organization: X
Registrant Street: REDACTED
Registrant City: REDACTED
Registrant State/Province: Western
Registrant Postal Code: REDACTED
Registrant Country: US
Registrant Phone: REDACTED
Registrant Phone Ext: REDACTED
Registrant Fax: REDACTED
Registrant Fax Ext: REDACTED
DATA;

$items = preg_split('/\R/', $data);
foreach($items as $line) {
    $pair = explode(': ', $line);
    $result[$pair[0]] = $pair[1];
}

var_export($result);

以如下所示的简单方式

$str = 'Domain Status: ok https://icann.org/epp#ok
Registry Registrant ID: REDACTED
Registrant Name: REDACTED
Registrant Organization: X
Registrant Street: REDACTED
Registrant City: REDACTED
Registrant State/Province: Western
Registrant Postal Code: REDACTED
Registrant Country: US
Registrant Phone: REDACTED
Registrant Phone Ext: REDACTED
Registrant Fax: REDACTED
Registrant Fax Ext: REDACTED';

$arr_data = explode("\n", $str);

$arr_final_data = [];
foreach($arr_data as $data){
    $temp_arr = explode(':', $data);
    // If key value pair exist
    if(count($temp_arr) > 1){
        $arr_final_data[trim($temp_arr[0])] = trim($temp_arr[1]);
    }
}
print_r($arr_final_data);

上显示一些codeexplode,并创建一个包含两个部分的键值对。
$str = 'Domain Status: ok https://icann.org/epp#ok
Registry Registrant ID: REDACTED
Registrant Name: REDACTED
Registrant Organization: X
Registrant Street: REDACTED
Registrant City: REDACTED
Registrant State/Province: Western
Registrant Postal Code: REDACTED
Registrant Country: US
Registrant Phone: REDACTED
Registrant Phone Ext: REDACTED
Registrant Fax: REDACTED
Registrant Fax Ext: REDACTED';

$arr_data = explode("\n", $str);

$arr_final_data = [];
foreach($arr_data as $data){
    $temp_arr = explode(':', $data);
    // If key value pair exist
    if(count($temp_arr) > 1){
        $arr_final_data[trim($temp_arr[0])] = trim($temp_arr[1]);
    }
}
print_r($arr_final_data);