gpt4 book ai didi

PHP访问命名数组元素问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:03:53 25 4
gpt4 key购买 nike

我有一个从 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com