我想对一个对象的属性进行排序,以便我可以按定义的顺序循环遍历它们。
例如:我有一个具有以下属性的对象“book”:“id”、“title”、“author”、“date”。
现在我想像这样遍历这些属性:
foreach($book as $prop=>$val)
//do something
现在循环的顺序必须是'title',然后是'author','date'和'id'
如何做到这一点? (我无法更改对象类中属性的顺序,因为那里没有定义任何属性,我使用“MyActiveRecord”从数据库中获取对象)
最佳答案
不确定这是否能回答您的问题,但您可以尝试:
$properties = array('title', 'author', 'date', 'id');
foreach ($properties as $prop) {
echo $book->$prop;
}
或者,您可以提取图书的属性(而不是对它们进行硬编码),然后按照您的自定义顺序对它们进行排序:
$props = get_class_vars(get_class($book));
uasort($props, 'my_properties_sorting_function');
关于php排序对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2942906/