什么PHP数据结构适合存储网址和描述等?

时间:2013-07-01 14:14:47

标签: php arrays sorting struct associative

我想将以下信息存储在PHP中的某种结构或数组中;

  • URL
  • 标题
  • 描述
  • 等级

我希望数据是关联的,特定的URL是指标题,描述&秩。

我希望能够按排名对数据进行排序,然后按顺序对其进行排序,每个元素仍然关联。

我应该使用关联数组吗?结构?还是其他一些PHP数据结构?

由于

3 个答案:

答案 0 :(得分:0)

我会为此创建一个自定义类。有关php类的更多信息,请访问php.net manual

答案 1 :(得分:0)

$urls["http://example.com"] = array(
    "rank" => 3,
    "title" => "abc",
    ...
)

并使用uasort进行排序

答案 2 :(得分:0)

您可以尝试:

$data = new LinkData();

$data->set("http://stackoverflow.com/q/17406624/1226894", [
        "name" => "Data Structure",
        "rank" => 3
]);

$data->set("http://stackoverflow.com/", [
        "desc" => "Nice Site",
        "title" => "Stackoverflow"
]);

foreach($data as $v) {
    print_r($v);
}

输出

Array
(
    [url] => http://stackoverflow.com/q/17406624/1226894
    [title] => 
    [rank] => 3
    [desc] => 
    [name] => Data Structure
)
Array
(
    [url] => http://stackoverflow.com/
    [title] => Stackoverflow
    [rank] => 
    [desc] => Nice Site
)

使用的课程

class LinkData implements IteratorAggregate {
    private $data = array();

    function getIterator() {
        return new ArrayIterator($this->data);
    }

    function set($url, array $info) {
        $this->data[md5($url)] = array_merge([
                "url" => $url,
                "title" => null,
                "rank" => null,
                "desc" => null
        ], $info);
    }

    function get($url) {
        return isset($this->data[$key = md5($url)]) ? $this->data[$key] : [];
    }
}