次の情報を PHP の何らかの構造体または配列に格納したいと考えています。
- URL
- 題名
- 説明
- ランク
特定の URL がタイトル、説明、およびランクを参照するように、データを関連付けたいと考えています。
データをランク順に並べ替えてから、各要素が関連付けられたまま、その順序でエコーできるようにしたいと考えています。
連想配列を使用する必要がありますか? 構造体?または他のPHPデータ構造?
ありがとう
次の情報を PHP の何らかの構造体または配列に格納したいと考えています。
特定の URL がタイトル、説明、およびランクを参照するように、データを関連付けたいと考えています。
データをランク順に並べ替えてから、各要素が関連付けられたまま、その順序でエコーできるようにしたいと考えています。
連想配列を使用する必要がありますか? 構造体?または他のPHPデータ構造?
ありがとう
このためのカスタムクラスを作成します。php クラスの詳細については、php.net マニュアルを参照してください。
$urls["http://example.com"] = array(
"rank" => 3,
"title" => "abc",
...
)
uasort
注文に使用する
あなたが試すことができます :
$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] : [];
}
}