php排序对象的属性

标签 php sorting object

我想对一个对象的属性进行排序,以便我可以按定义的顺序循环遍历它们。

例如:我有一个具有以下属性的对象“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/

相关文章:

ios - 使用touchesBegan方法从节点获取对象的引用

javascript - 如何向 jquery 创建的元素添加数据?

javascript - Knockout JS 和简单的功能

php - 设置约束 min 0 和 max infinity

php - preg_match 两边几个特殊字符之间的字符串

c - 为什么我的 C 代码每次都不起作用?

javascript - 如何使用 ramda 的 sortBy 函数按降序排序?

c++ - 在 Rcpp 中用(西类牙语)重音词对 map 进行排序

php - 有选择地使用 Sed 替换 SQL 语法

php - 图像魔术 : PHP Script giving 'import: unable to open X server'