gpt4 book ai didi

php - 使用 SimpleXMLElement 从对象获取数组

转载 作者:可可西里 更新时间:2023-11-01 00:47:48 25 4
gpt4 key购买 nike

我在获取这些对象中的数组时遇到了一些问题。当我 print_r() 时,会打印以下代码。 $message_object 是对象的名称。

SimpleXMLElement Object
(
[header] => SimpleXMLElement Object
(
[responsetime] => 2012-12-22T14:10:09+00:00
)

[data] => SimpleXMLElement Object
(
[id] => Array
(
[0] => 65233
[1] => 65234
)

[account] => Array
(
[0] => 20992
[1] => 20992
)

[shortcode] => Array
(
[0] => 3255
[1] => 3255
)

[received] => Array
(
[0] => 2012-12-22T11:04:30+00:00
[1] => 2012-12-22T11:31:08+00:00
)

[from] => Array
(
[0] => 6121843347
[1] => 6121820166
)

[cnt] => Array
(
[0] => 24
[1] => 25
)

[message] => Array
(
[0] => Go tramping wellington 11-30
[1] => Go drinking Matakana 2pm
)

)

)

我正在尝试使用 foreach 从对象中获取 id 数组:

foreach($message_object->data->id AS $id) {
print_r($id);
}

发送以下回复:

SimpleXMLElement Object ( [0] => 65233 ) SimpleXMLElement Object ( [0] => 65234 )

我如何获得 [0] 的值,或者我做错了吗?有没有办法循环遍历结果并获取对象键?

我试图回显 $id[0] 但没有返回任何结果。

最佳答案

当您在 SimpleXMLElement 上使用 print_r 时,两者之间就会发生魔法。所以你看到的实际上并不是那里的东西。它提供了丰富的信息,但与普通对象或数组不同。

要回答您如何迭代的问题:

foreach ($message_object->data->id as $id)
{
echo $id, "\n";
}

回答如何将它们转换成数组:

$ids = iterator_to_array($message_object->data->id, 0);

因为这仍然会为您提供 SimpleXMLElements 但您可能希望拥有可以在使用时将这些元素中的每一个转换为字符串的值,例如:

echo (string) $ids[1]; # output second id 65234

或者将整个数组转换成字符串:

$ids = array_map('strval', iterator_to_array($message_object->data->id, 0));

或者转换为整数:

$ids = array_map('intval', iterator_to_array($message_object->data->id, 0));

关于php - 使用 SimpleXMLElement 从对象获取数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13999398/

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