API返回json aray对象,其中包含点,空格和%的键。如何从数组重命名或删除键?

时间:2018-05-04 17:41:05

标签: php json mongodb

  

返回的对象API包含点,空格和%。如何删除或重命名这些键。

array:61 [▼
"status" => 0
"NetRange" => "31.0.0.0 - 31.255.255.255"
"CIDR" => "31.0.0.0/8"
"OrgName" => "RIPE Network Coordination Centre"
"OrgId" => "RIPE"
"Address" => "P.O. Box 10096"
"City" => "Amsterdam"
"StateProv" => ""
"PostalCode" => "1001EB"
"Country" => "NL"
"Referral.Server" => "whois://whois.ripe.net"
"Org Abuse.Handle" => "ABUSE3850-ARIN"
"Org Abuse.Name" => "Abuse Contact"
"Org Abuse.Phone" => "+31205354444"
"Org Abuse.Email" => "abuse@ripe.net"
"Org Abuse.Ref" => "https://whois.arin.net/rest/poc/ABUSE3850-ARIN"
"Org Tech.Handle" => "RNO29-ARIN"
"% Org Tech.Ref" => "https://whois.arin.net"
"inetnum" => "31.13.69.0 - 31.13.69.255"
"netname" => "IAD1"
"descr" => "Facebook"
"country" => "US"
"admin-c" => "RD4299-RIPE, PH4972-RIPE"
"tech-c" => "RD4299-RIPE, PH4972-RIPE"
"mnt-by" => "fb-neteng, fb-neteng"
"mnt-lower" => "fb-neteng"
"mnt-routes" => "fb-neteng"
"created" => "2014-06-11T18:46:37Z, 2011-04-11T18:49:50Z"
"last-modified" => "2014-06-11T18:46:37Z, 2013-08-14T15:49:58Z"
"source" => "RIPE, RIPE # Filtered"
"role" => "RIPE DBM"
"address" => "1601 Willow Rd., Menlo Park, CA, 94025"
"nic-hdl" => "RD4299-RIPE"
"abuse-mailbox" => "domain@fb.com"
"% This query was served by the RIPE Database Query Service version 1.91.2 (ANGUS)" => ""
"cidr_mask" => array:1 [▶]
]

比如将 Org Abuse.Handle 更改为OrgAbuseHandle,将%Org Tech.Ref 更改为OrgTechRef。

1 个答案:

答案 0 :(得分:2)

您可以在str_replace()array_keys() array_map()array_combine()

的帮助下尝试这样的操作

<强>步骤:

1。首先使用array_keys()

从数组中获取密钥

2。然后使用%替换.- array_map()等不需要的字符来修改密钥和str_replace()

3。最后将修改后的键与现有值组合,以生成结果数组$result

<?php
$array = [
          "nic.hdl" => "RD4299-RIPE",
          "abuse-mailbox" => "domain@fb.com",
          "% This query was served by the RIPE" => ""
         ];

// replacing unwanted characters from every key
function replace_characters($n)
{
    return str_replace(array('-', ' ', '.','%'), '', $n);;
}

$keys = array_keys($array);
$proper_keys = array_map("replace_characters", $keys);
$result = array_combine($proper_keys,$array); // combine modified key & value
print '<pre>';
print_r($result);
print '</pre>';
?>

查看演示https://eval.in/999435