PHP访问命名数组元素问题

标签 php arrays

我有一个从 XML 文件生成的数组,当使用 print_r 打印时,它显示如下所示

Array
(
    [cxname] => Global CX 87 123
    [ipaddress] =>  66.240.55.87
    [slots] => Array
        (
            [slot] => Array
                (
                    [0] => Array
                        (
                            [slotno] =>  1
                            [cardtype] => 0x24 
                            [modelno] =>  OP3524J
                            [label1] => OP 
                            [label2] =>  Module
                            [severity] => Minor
                        )

                    [1] => Array
                        (
                            [slotno] =>  2
                            [cardtype] => 0x25 
                            [modelno] =>  OP3524K
                            [label1] => OP 
                            [label2] =>  Module
                            [severity] => Major
                        )

                )

        )

)

当我这样打印时,它什么也没有显示

 echo $dataArray->cxname;

但以下代码有效并打印“Global CX 87 123”

 echo $dataArray["cxname"];

如何让它像上面的例子一样工作。

最佳答案

只需这样做:

$dataArray = (object)$dataArray;

它会将数组转换为 stdClass 对象,并允许您以这种方式使用它。请注意,这只会转换数组的第一层。如果您想以这种方式访问​​所有级别,则必须创建一个函数来递归数组。例如:

<?php
function arrayToObject($array) {
    if(!is_array($array)) {
        return $array;
    }

    $object = new stdClass();
    if (is_array($array) && count($array) > 0) {
      foreach ($array as $name=>$value) {
         $name = strtolower(trim($name));
         if (!empty($name)) {
            $object->$name = arrayToObject($value);
         }
      }
      return $object; 
    }
    else {
      return FALSE;
    }
}

有关更多信息,请查看 http://www.richardcastera.com/blog/php-convert-array-to-object-with-stdclass .要了解类型转换,您还可以阅读 http://www.php.net/manual/en/language.types.object.php#language.types.object.casting .

关于PHP访问命名数组元素问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6501984/

相关文章:

php - Woocommerce 中的自定义购物车商品重量

c - 在 C 中打印数组时出错

无法获取字符串数组来复制一个随机值

c++ - 链表数组大小不同

javascript - 调用javascript函数错误

php - 编辑加载后的 WordPress 操作

php - GAE - PHP session 不工作

java - 保存后如何将 MongoDB 集合加载到 Java 程序数据结构上?

javascript - Lodash uniqBy更新最新值

PHP 选择最接近变量