相关疑难解决方法(0)

如何检查PHP数组是关联的还是顺序的?

PHP将所有数组视为关联的,因此没有任何内置函数.任何人都可以推荐一种相当有效的方法来检查数组是否只包含数字键?

基本上,我希望能够区分这个:

$sequentialArray = array('apple', 'orange', 'tomato', 'carrot');
Run Code Online (Sandbox Code Playgroud)

还有这个:

$assocArray = array('fruit1' => 'apple', 
                    'fruit2' => 'orange', 
                    'veg1' => 'tomato', 
                    'veg2' => 'carrot');
Run Code Online (Sandbox Code Playgroud)

php arrays

749
推荐指数
18
解决办法
24万
查看次数

什么是最好的PHP DOM 2阵列功能?

我想解析xml文件,我发现最好的方法是使用DOMDocument()类到目前为止.

示例xml字符串:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<response>
<resData>
<contact:infData xmlns:contact="http://example.com/contact-1.0">
<contact:status s="value1"/>
<contact:status s="value2"/>
<contact:status s="value3"/>
<contact:status s="value4"/>
</contact:infData>
</resData>
</response>
Run Code Online (Sandbox Code Playgroud)

我使用函数dom2array(bellow)来解析dom,但它只返回1个元素(仅限value4)

<?php
    function dom2array($node) {
    $res = array();
    if($node->nodeType == XML_TEXT_NODE){
       $res = $node->nodeValue;
    }else{
       if($node->hasAttributes()){
           $attributes = $node->attributes;
            if(!is_null($attributes)){
               $res['@attributes'] = array();
               foreach ($attributes as $index=>$attr) {
                   $res['@attributes'][$attr->name] = $attr->value;
               }
           }
       }
       if($node->hasChildNodes()){
           $children = $node->childNodes;
           for($i=0;$i<$children->length;$i++){
               $child = $children->item($i);
               $res[$child->nodeName] = dom2array($child);
           }
       }
    }
    return $res;
    }
?>
Run Code Online (Sandbox Code Playgroud)

有没有办法解析所有xml元素并将它们发送到数组?

输出数组:

Array
(
[response] => …
Run Code Online (Sandbox Code Playgroud)

php xml arrays domdocument

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

arrays ×2

php ×2

domdocument ×1

xml ×1