簡體   English   中英

按列對多維數組排序

[英]Sort Multidimensional Array by Column

我有一個多維數組,並嘗試了我可以從該網站上找到的每個示例代碼,並按列對它進行排序。 我嘗試過的代碼片段中沒有一個起作用,並且由於某種原因,所有這些片段都導致一些奇怪的排序問題。 我無法為自己的生活弄清楚是什么原因造成的,並希望有人指出這一點...

    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”

在此處輸入圖片說明

通過將SimpleXML對象轉換為字符串可以解決此問題。 在完成排序功能之前,所有排序功能都無法正常工作,然后才是正確的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM