通过引用数组对对象内容进行排序

时间:2013-04-01 17:45:38

标签: php sorting

我的问题可能看起来有点傻但我正在编写一个从给定数据输出HTML表的对象。给定的数据是一个json编码的字符串,其中包含头数组和数据对象:

例如:

{
    "header":["id","fname","lname","position"],
    "data":{
        "0":{"position":"Developer","fname":"Tom","lname":"Jones","id":12},
        "1":{"position":"UI Designer","fname":"John","lname":"Smith","id":18},
        "2":{"position":"UX Specialist","fname":"Farid","lname":"Rn","id":110}
    }
}

问题是数据的排序与标题不同。

我想使用头数组作为引用,并按它对数据对象的每一行进行排序。这可能吗?

1 个答案:

答案 0 :(得分:1)

当然!使用外部和内部循环。外部循环遍历数据元素,内部循环遍历标题列表。对于标题列表中的每个项目,从数据项中的关联数组中获取它的值。

伪码:

foreach ($thing->data as $item) {
    // here would be a good place for the <tr>
    foreach ($thing->header as $header) {
        $dataforheader = $item->$header;
        // do something, maybe output a <td>
    }
}

现在,您还可以将其放入备用数据结构中进行排序。