【问题标题】:Convert PHP string to multi dimensional array将PHP字符串转换为多维数组
【发布时间】:2021-02-02 18:20:29
【问题描述】:

我有一个字符串如下

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

我正在尝试将此字符串转换为具有键/值对的数组。例如 Registrant City 作为 Key,然后 REDACTED 作为 value。

我试图炸开它,但根本没有得到结果。

任何帮助表示赞赏。

【问题讨论】:

  • 给我们看一些代码
  • : 上展开并创建 2 部分的键值对。

标签: php arrays explode


【解决方案1】:

简单的方法如下

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

【讨论】:

    【解决方案2】:

    只是分割成行,然后用冒号分割。如果您不想要第一个密钥对,您可以将其关闭。

    <?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);
    

    输出:

    array (
        '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',
      )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-23
      • 2015-03-22
      • 2015-06-20
      • 1970-01-01
      • 2019-02-13
      • 2012-11-17
      相关资源
      最近更新 更多