Tôi đã đọc những gì tôi đã tìm thấy trên Stackoverflow và vẫn chưa rõ về điều này.Sắp xếp một mảng các đối tượng SimpleXML
Tôi có một mảng của các đối tượng SimpleXML một cái gì đó như thế này:
array(2) {
[0]=>
object(SimpleXMLElement)#2 (2) {
["name"]=>
string(15) "Andrew"
["age"]=>
string(2) "21"
}
[1]=>
object(SimpleXMLElement)#3 (2) {
["name"]=>
string(12) "Beth"
["age"]=>
string(2) "56"
}
}
Và tôi muốn để có thể sắp xếp theo cột bất cứ điều gì, tăng dần hoặc giảm dần. Một cái gì đó như:
sort($data, 'name', 'asc');
Tôi có thể chuyển vào mảng đối tượng trên và sắp xếp theo giá trị của bất kỳ khóa nào tôi thích.
Để tham khảo, một giải pháp NET tương tự sẽ được cùng những dòng này: người
XmlSortOrder order = XmlSortOrder.Ascending;
if (sortDirection == "asc") {
order = XmlSortOrder.Ascending;
}
expression.AddSort(columnSortingOn + "/text()", order,
XmlCaseOrder.UpperFirst, "en-us", XmlDataType.Text);
Tôi đã nhìn thấy nói
"Use usort"
Tiếp theo là một ví dụ cơ bản từ cuốn hướng dẫn PHP nhưng doesn này 't thực sự giải thích nó. Ít nhất là không phải với tôi. Tôi cũng đã thấy mọi người đề nghị sử dụng một thư viện bên ngoài như SimpleDOM nhưng tôi muốn tránh sử dụng một cái gì đó bên ngoài cho điều này (dường như, mặc dù tôi chưa thể giải quyết nó) điều nhỏ nhặt.
Bất kỳ trợ giúp nào được đánh giá cao, Cảm ơn!
Vâng heck Josh, bạn kiên trì! Tôi cho rằng tôi sẽ thử nó vì nó sẽ cho phép tôi chuyển sang khối vấp ngã tiếp theo và tôi có thể sử dụng nó ở những nơi khác trong dự án này. – Stuart
Tôi không nhất quán, chỉ nhất quán trong việc ủng hộ việc sử dụng lại mã. Nếu đoạn trích tôi đăng ở trên hoạt động cho bạn thì tất cả có nghĩa là hãy sử dụng đoạn mã đó. Hoặc sử dụng đóng cửa nếu bạn thích, bất cứ điều gì làm việc cho bạn. Như bạn đã nói, mục tiêu của bạn là tìm một giải pháp cho phép bạn chuyển sang khối vấp ngã tiếp theo và sẽ không yêu cầu bạn quay lại sau. –
Điều đó "dai dẳng" có nghĩa là được miễn phí. Tôi được bán trên SimpleDOM. Nó chỉ hoạt động. Nhanh. Tuyệt vời, Josh. – Stuart