抓取对象中的第一个元素(PHP)


Grabbing the first element in an object (PHP)

我有一个结构如下的对象:

Array 
( 
    [0] => SimpleXMLElement Object ( [0] => Europe ) 
    [1] => SimpleXMLElement Object ( [0] => South America ) 
    [3] => SimpleXMLElement Object ( [0] => North America ) 
    [4] => SimpleXMLElement Object ( [0] => Asia )
)

我正试着按字母顺序排列这些物体。我试过对整个数组使用sort(),但它不起作用。我假设它只是获取对象的名称,在所有情况下都是一样的,并对其进行排序。我试图访问每个对象中的文本,但如果不带上"SimpleXMLElement object()"文本,似乎无法访问。我该如何访问该文本,并可能只使用文本值重新创建一个新数组?

编辑:我尝试过以下操作:

$regions=排序($regions);$regions=usort($regions);

谢谢!

您可以使用usort:

<?php
function pony_sorting($a, $b)
{
    if ((string)$a[0] == (string)$b[0) {
        return 0;
    }
    return ((string)$a[0] < (string)$b[0]) ? -1 : 1;
}
usort($a, "pony_sorting");

这将保留数组的数据结构。但是,如果您不关心SimpleXML元素,只需将其导出到一个干净且更节省内存的数组中即可。

$clean = array();
foreach ($a as $simplexml)
{
  $clean[] = (string)$simplexml[0];
}

请注意(字符串)强制转换,它允许获取simpleXmlElement的实际值。