我有一个多维数组,并尝试了我可以从这个网站找到的每个示例代码,按列进行排序。我尝试过没有一个片段有效,但由于某些原因,所有这些片段都会导致一些奇怪的排序。我不能为我的生活找出造成这种情况的原因,希望有人能指出来......
if ($devices_xml = curl_get_file_contents($devices_url))
{
$devices = simplexml_load_string($devices_xml);
$data = array(array());
$counter = 0;
foreach ($devices->item as $device)
{
$data[$counter]["id"] = $device->objid;
$data[$counter]["probe"] = $device->probe;
$data[$counter]["name"] = $device->device;
$counter++;
}
array_sort_by_column($data, "probe");
return $data;
}
return false;
}
我的多维排序功能适用于所有其他功能,但不是这样的,如下所示......
function array_sort_by_column(&$arr, $col, $dir = SORT_ASC)
{
$sort_col = array();
foreach ($arr as $key=> $row)
{
$sort_col[$key] = $row[$col];
}
array_multisort($sort_col, $dir, $arr);
}
结果看起来像这样。探针是开头的“DE-FRANKFURT”,名称是第二部分,如“EU-DE-010”
答案 0 :(得分:1)
通过将SimpleXML对象转换为字符串来解决此问题。在完成之前,所有排序功能都没有正常工作,那么它是正确的。