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 >

我想将此哈希表转换为数组或对象。是否有任何php方法可用于将哈希表转换为数组、对象或其他任何内容

<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()
将其转换为字符串。

这可能会帮助您:这可能会帮助您:这可能会帮助您:这可能会帮助您: