Php 如何将哈希表转换为数组
我想将此哈希表转换为数组或对象。是否有任何php方法可用于将哈希表转换为数组、对象或其他任何内容Php 如何将哈希表转换为数组,php,arrays,xml,object,hashtable,Php,Arrays,Xml,Object,Hashtable,我想将此哈希表转换为数组或对象。是否有任何php方法可用于将哈希表转换为数组、对象或其他任何内容 <hashtable> <entry> <string>actiontypedesc</string> <string>Deletion of IP Address [148.56.25.133] from Child Nameserver ns4.pankajwelcome.com</string >
<hashtable>
<entry>
<string>actiontypedesc</string>
<string>Deletion of IP Address [148.56.25.133] from Child Nameserver ns4.pankajwelcome.com</string
>
</entry>
<entry>
<string>entityid</string>
<string>61389936</string>
</entry>
<entry>
<string>actionstatus</string>
<string>Success</string>
</entry>
</hashtable>
动作类型描述
从子名称服务器ns4.pankajwelcome.com中删除IP地址[148.56.25.133]
实体ID
61389936
行动状态
成功
这看起来很像XML,这就是为什么可以使用PHP的SimpleXML扩展:
$hash = '<hashtable>
<entry>
<string>actiontypedesc</string>
<string>Deletion of IP Address [148.56.25.133] from Child Nameserver ns4.pankajwelcome.com</string
>
</entry>
<entry>
<string>entityid</string>
<string>61389936</string>
</entry>
<entry>
<string>actionstatus</string>
<string>Success</string>
</entry>
</hashtable>';
$asXML = new SimpleXMLElement($hash);
var_dump($asXML);
$hash=
动作类型描述
从子名称服务器ns4.pankajwelcome.com中删除IP地址[148.56.25.133]
实体ID
61389936
行动状态
成功
';
$asXML=新的SimpleXMLElement($hash);
var_dump($asXML);
这将创建一个对象,您可以轻松访问其字段。这看起来很像XML,这就是为什么您可以使用PHP的SimpleXML扩展:
$hash = '<hashtable>
<entry>
<string>actiontypedesc</string>
<string>Deletion of IP Address [148.56.25.133] from Child Nameserver ns4.pankajwelcome.com</string
>
</entry>
<entry>
<string>entityid</string>
<string>61389936</string>
</entry>
<entry>
<string>actionstatus</string>
<string>Success</string>
</entry>
</hashtable>';
$asXML = new SimpleXMLElement($hash);
var_dump($asXML);
$hash=
动作类型描述
从子名称服务器ns4.pankajwelcome.com中删除IP地址[148.56.25.133]
实体ID
61389936
行动状态
成功
';
$asXML=新的SimpleXMLElement($hash);
var_dump($asXML);
这将创建一个对象,您可以轻松访问其字段。这看起来很像XML,这就是为什么您可以使用PHP的SimpleXML扩展:
$hash = '<hashtable>
<entry>
<string>actiontypedesc</string>
<string>Deletion of IP Address [148.56.25.133] from Child Nameserver ns4.pankajwelcome.com</string
>
</entry>
<entry>
<string>entityid</string>
<string>61389936</string>
</entry>
<entry>
<string>actionstatus</string>
<string>Success</string>
</entry>
</hashtable>';
$asXML = new SimpleXMLElement($hash);
var_dump($asXML);
$hash=
动作类型描述
从子名称服务器ns4.pankajwelcome.com中删除IP地址[148.56.25.133]
实体ID
61389936
行动状态
成功
';
$asXML=新的SimpleXMLElement($hash);
var_dump($asXML);
这将创建一个对象,您可以轻松访问其字段。这看起来很像XML,这就是为什么您可以使用PHP的SimpleXML扩展:
$hash = '<hashtable>
<entry>
<string>actiontypedesc</string>
<string>Deletion of IP Address [148.56.25.133] from Child Nameserver ns4.pankajwelcome.com</string
>
</entry>
<entry>
<string>entityid</string>
<string>61389936</string>
</entry>
<entry>
<string>actionstatus</string>
<string>Success</string>
</entry>
</hashtable>';
$asXML = new SimpleXMLElement($hash);
var_dump($asXML);
$hash=
动作类型描述
从子名称服务器ns4.pankajwelcome.com中删除IP地址[148.56.25.133]
实体ID
61389936
行动状态
成功
';
$asXML=新的SimpleXMLElement($hash);
var_dump($asXML);
这将创建一个对象,您可以轻松访问其字段。一般转换不会提供最佳结果。XML是一种数据结构,一般的转换通常会导致信息和功能的丢失 如果希望将此特定数据读入简单数组,可以使用DOM+XPath:
$document = new DOMDocument();
$document->loadXml($xml);
$xpath = new DOMXpath($document);
$array = [];
foreach ($xpath->evaluate('/hashtable/entry') as $entry) {
$key = $xpath->evaluate('string(string[1])', $entry);
$value = $xpath->evaluate('string(string[2])', $entry);
$array[$key] = $value;
}
var_dump($array);
输出:
array(3) {
["actiontypedesc"]=>
string(82) "Deletion of IP Address [148.56.25.133] from Child Nameserver ns4.pankajwelcome.com"
["entityid"]=>
string(8) "61389936"
["actionstatus"]=>
string(7) "Success"
}
/hashtable/entry
返回所有entry
节点的列表string[1]
将返回第一个string
元素子节点(在列表中),但函数string()
将其转换为字符串。一般转换不会提供最佳结果。XML是一种数据结构,一般的转换通常会导致信息和功能的丢失
如果希望将此特定数据读入简单数组,可以使用DOM+XPath:
$document = new DOMDocument();
$document->loadXml($xml);
$xpath = new DOMXpath($document);
$array = [];
foreach ($xpath->evaluate('/hashtable/entry') as $entry) {
$key = $xpath->evaluate('string(string[1])', $entry);
$value = $xpath->evaluate('string(string[2])', $entry);
$array[$key] = $value;
}
var_dump($array);
输出:
array(3) {
["actiontypedesc"]=>
string(82) "Deletion of IP Address [148.56.25.133] from Child Nameserver ns4.pankajwelcome.com"
["entityid"]=>
string(8) "61389936"
["actionstatus"]=>
string(7) "Success"
}
/hashtable/entry
返回所有entry
节点的列表string[1]
将返回第一个string
元素子节点(在列表中),但函数string()
将其转换为字符串。一般转换不会提供最佳结果。XML是一种数据结构,一般的转换通常会导致信息和功能的丢失
如果希望将此特定数据读入简单数组,可以使用DOM+XPath:
$document = new DOMDocument();
$document->loadXml($xml);
$xpath = new DOMXpath($document);
$array = [];
foreach ($xpath->evaluate('/hashtable/entry') as $entry) {
$key = $xpath->evaluate('string(string[1])', $entry);
$value = $xpath->evaluate('string(string[2])', $entry);
$array[$key] = $value;
}
var_dump($array);
输出:
array(3) {
["actiontypedesc"]=>
string(82) "Deletion of IP Address [148.56.25.133] from Child Nameserver ns4.pankajwelcome.com"
["entityid"]=>
string(8) "61389936"
["actionstatus"]=>
string(7) "Success"
}
/hashtable/entry
返回所有entry
节点的列表string[1]
将返回第一个string
元素子节点(在列表中),但函数string()
将其转换为字符串。一般转换不会提供最佳结果。XML是一种数据结构,一般的转换通常会导致信息和功能的丢失
如果希望将此特定数据读入简单数组,可以使用DOM+XPath:
$document = new DOMDocument();
$document->loadXml($xml);
$xpath = new DOMXpath($document);
$array = [];
foreach ($xpath->evaluate('/hashtable/entry') as $entry) {
$key = $xpath->evaluate('string(string[1])', $entry);
$value = $xpath->evaluate('string(string[2])', $entry);
$array[$key] = $value;
}
var_dump($array);
输出:
array(3) {
["actiontypedesc"]=>
string(82) "Deletion of IP Address [148.56.25.133] from Child Nameserver ns4.pankajwelcome.com"
["entityid"]=>
string(8) "61389936"
["actionstatus"]=>
string(7) "Success"
}
/hashtable/entry
返回所有entry
节点的列表string[1]
将返回第一个string
元素子节点(在列表中),但函数string()
将其转换为字符串。这可能会帮助您:这可能会帮助您:这可能会帮助您:这可能会帮助您: