1

次の情報を PHP の何らかの構造体または配列に格納したいと考えています。

  • URL
  • 題名
  • 説明
  • ランク

特定の URL がタイトル、説明、およびランクを参照するように、データを関連付けたいと考えています。

データをランク順に並べ替えてから、各要素が関連付けられたまま、その順序でエコーできるようにしたいと考えています。

連想配列を使用する必要がありますか? 構造体?または他のPHPデータ構造?

ありがとう

4

3 に答える 3

0

このためのカスタムクラスを作成します。php クラスの詳細については、php.net マニュアルを参照してください。

于 2013-07-01T14:18:38.177 に答える
0
$urls["http://example.com"] = array(
    "rank" => 3,
    "title" => "abc",
    ...
)

uasort注文に使用する

于 2013-07-01T14:19:42.743 に答える
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] : [];
    }
}
于 2013-07-01T14:36:28.127 に答える