我有一个结构如下的对象:
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的实际值。