亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目次
1. JSON データ構(gòu)造と PHP デコードを理解する
2. データをカテゴリごとにグループ化する
3. グループ化されたデータを HTML にレンダリングする
ホームページ バックエンド開発 PHPチュートリアル PHP で JSON データをカテゴリごとにグループ化してレンダリングするチュートリアル

PHP で JSON データをカテゴリごとにグループ化してレンダリングするチュートリアル

Oct 12, 2025 am 09:15 AM

PHP で JSON データをカテゴリごとにグループ化してレンダリングするためのチュートリアル

このチュートリアルでは、PHP で JSON 形式の複雑なデータを処理する方法について詳しく説明します。 json_decode を通じて JSON 文字列を PHP 配列に変換し、特定のキー (「カテゴリ」など) に従ってデータを効率的にグループ化する方法を示し、最後に、ネストされたループを通じてグループ化されたデータを構(gòu)造化 HTML フォームに表示して、各カテゴリの記事リンクとタイトルが正しく表示されることを確認(rèn)します。

1. JSON データ構(gòu)造と PHP デコードを理解する

Web 開発では、JSON (JavaScript Object Notation) はフロントエンドおよびバックエンドのデータ送信に広く使用されている軽量のデータ交換形式です。 PHP には、JSON データを処理するための組み込み関數(shù)が用意されています。

複數(shù)の記事に関する情報(bào)を含む JSON 配列があるとします。各記事には、「記事」(リンク)、「カテゴリー」(カテゴリ)、「タイトル」(タイトル)の 3 つのフィールドがあります。私たちの目標(biāo)は、これらの記事を「カテゴリ」ごとにグループ化し、Web ページ上に表示することです。

JSON データの例:

 [
    {
        "記事": "https://example.com/cat2-article1",
        "カテゴリ": "貓2",
        "title": "1タイトル Cat2"
    }、
    {
        "記事": "https://example.com/cat1-article1",
        "カテゴリ": "貓1",
        "title": "1タイトル Cat1"
    }、
    {
        "記事": "https://example.com/cat1-article2",
        "カテゴリ": "貓1",
        "title": "2タイトル Cat1"
    }、
    {
        "記事": "https://example.com/cat2-article2",
        "カテゴリ": "貓2",
        "title": "2タイトル Cat2"
    }、
    {
        "記事": "https://example.com/cat1-article3",
        "カテゴリ": "貓1",
        "title": "3タイトルCat1"
    }
】

PHP では、json_decode() 関數(shù)を使用して JSON 文字列を PHP 変數(shù)に変換します。 2 番目のパラメーターが true に設(shè)定されている場(chǎng)合、連想配列が返されます。それ以外の場(chǎng)合は、オブジェクトが返されます。このチュートリアルのニーズでは、連想配列の方が扱いやすいです。

 <?php $json = &#39;[{
    "記事": "https://example.com/cat2-article1",
    "カテゴリ": "貓2",
    "title" : "1タイトルCat2"
}、{
    "記事": "https://example.com/cat1-article1",
    "カテゴリ": "貓1",
    "title" : "1タイトルCat1"
}、{
    "記事": "https://example.com/cat1-article2",
    "カテゴリ": "貓1",
    "title" : "2タイトルCat1"
}、{
    "記事": "https://example.com/cat2-article2",
    "カテゴリ": "貓2",
    "title" : "2タイトルCat2"
}、{
    "記事": "https://example.com/cat1-article3",
    "カテゴリ": "貓1",
    "title" : "3タイトルCat1"
}]&#39;;

// JSON 文字列を PHP 連想配列にデコードします $values = json_decode($json, true);

// デコードが成功したかどうかとデータ型を確認(rèn)します if (json_last_error() !== JSON_ERROR_NONE) {
    echo "JSON デコード エラー: " 。 json_last_error_msg();
    出口;
}
if (!is_array($values)) {
    echo "デコードされたデータは配列ではありません。";
    出口;
}
?>

2. データをカテゴリごとにグループ化する

デコードされた $values は、複數(shù)の記事の連想配列を含む配列です。カテゴリ別に表示するには、この配列を反復(fù)処理して、各キーがカテゴリを表し、その値がそのカテゴリ內(nèi)のすべての記事を含む配列である新しいデータ構(gòu)造を構(gòu)築する必要があります。

 <?php // ... (前の JSON データとコードのデコード) ...

$res = []; // グループ化されたデータを foreach に保存するために使用されます ($values as $entry) {
  $category = $entry[&#39;カテゴリ&#39;]; // 現(xiàn)在の記事のカテゴリを取得します // このカテゴリが結(jié)果配列にまだない場(chǎng)合は、このカテゴリの下に記事を格納する空の配列を作成します if (! array_key_exists($category, $res)) {
    $res[$category] ??= [];
  }

  // 現(xiàn)在の記事を?qū)潖辘工毳匹触辘闻淞肖俗芳婴筏蓼?$res[$category][] = $entry;
}

// このとき、$res 配列の構(gòu)造はおおよそ次のようになります。
//[
// "Cat2" => [
// ["article" => "...", "category" => "Cat2", "title" => "..."],
// ["article" => "...", "category" => "Cat2", "title" => "..."]
//]、
// "Cat1" => [
// ["article" => "...", "category" => "Cat1", "title" => "..."],
// ["article" => "...", "category" => "Cat1", "title" => "..."],
// ["article" => "...", "category" => "Cat1", "title" => "..."]
//]
//]
?>

3. グループ化されたデータを HTML にレンダリングする

データがグループ化されたら、次のステップはそれを HTML ページにレンダリングすることです。これには通常、ネストされた foreach ループが含まれます。外側(cè)のループはカテゴリを反復(fù)し、內(nèi)側(cè)のループは各カテゴリの記事を反復(fù)します。

レンダリングするときは、各記事の記事 (リンク) フィールドとタイトル (タイトル) フィールドに正しくアクセスすることに注意する必要があります。元の質(zhì)問(wèn)で考えられるエラーは、內(nèi)側(cè)のループ內(nèi)の外側(cè)のループの変數(shù)にアクセスしようとしたこと、または間違ったキー名を使用したことです。

 

    <title>記事分類表示</title>
    
        body { フォントファミリー: Arial、サンセリフ;マージン: 20px; }
        h1 {カラー: #333;ボーダーボトム: 2px ソリッド #eee;パディングボトム: 5px;マージントップ: 30px; }
        p {マージン: 5px 0; }
        p.article-link { color: #007bff; }
        p.article-title { font-weight: 太字; }
    スタイル>


<?php // ... (前の JSON データ、デコードおよびグループ化コード) ...

// グループ化されたデータを走査し、HTML にレンダリングします
foreach($res as $category => $entry_list): ?>
  <h1>= htmlspecialchars($category); ?></h1>
    <?php foreach($entry_list as $article): ?>
    <p class="article-link"><a href="<?=%20htmlspecialchars(%24article%5B'article'%5D);%20?>" target="_blank">= htmlspecialchars($article['article']); ?></a></p>
    <p class="article-title">= htmlspecialchars($article['title']); ?></p>
  <?php endforeach; ?>
<?php endforeach; 
?>

以上がPHP で JSON データをカテゴリごとにグループ化してレンダリングするチュートリアルの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見(jiàn)つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Stock Market GPT

Stock Market GPT

AIを活用した投資調(diào)査により賢明な意思決定を?qū)g現(xiàn)

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ホットトピック

メールアドレスがPHPで有効かどうかを確認(rèn)する方法は? メールアドレスがPHPで有効かどうかを確認(rèn)する方法は? Sep 21, 2025 am 04:07 AM

usefilter_var()tovalidateemailsyntaxandcheckdnsrr()toverifydomainmxrecords.example:$ email = "user@example.com"; if($ email、filter_validate_email)

PHPでオブジェクトの深いコピーまたはクローンを作成する方法は? PHPでオブジェクトの深いコピーまたはクローンを作成する方法は? Sep 21, 2025 am 12:30 AM

useunserialize(serialize($ obj))fordeepcopying whenalldataisserializable;それ以外の場(chǎng)合は、__clone()tomaniallyduplicatededededededavoidsharedReferenceを?qū)g裝します。

PHPで2つの配列をマージする方法は? PHPで2つの配列をマージする方法は? Sep 21, 2025 am 12:26 AM

usearray_merge()tocombinearrays、urblitingduplicatestringkeysandreindexingnumerickeys; forsimplerconcatenation、inthphp5.6、usethesplatoperator [... $ array1、... $ array2]。

PHPプロジェクトで名前空間を使用する方法は? PHPプロジェクトで名前空間を使用する方法は? Sep 21, 2025 am 01:28 AM

NamesSpacesInphporganizeCodeandPreventnamingConflictsByGroupingClasses、インターフェイス、関數(shù)、およびコンテンダントアンダースピフィクティフィクティフィクティフィクティフィクショナル

PHPを使用してデータベースでレコードを更新する方法は? PHPを使用してデータベースでレコードを更新する方法は? Sep 21, 2025 am 04:47 AM

toupdateadatabaserecordinphp、firstconnectusingpdoormysqli、thenuseprepreadedStatementStoeaseaseesecuresQlupDateQuery.example:$ pdo = newpdo( "mysql:host = localhost; dbname = your_database"、$ username、$ username、$ sibsfar

PHPの魔法の方法とは何ですか? `__call()`および `__get()`の例を提供します。 PHPの魔法の方法とは何ですか? `__call()`および `__get()`の例を提供します。 Sep 20, 2025 am 12:50 AM

the__call()メソッドは、customhandlingbyacceptingthemetodnameandarguments、ashownwhencollingdsslikesayhello()

PHPでファイルのzipアーカイブを作成する方法は? PHPでファイルのzipアーカイブを作成する方法は? Sep 18, 2025 am 12:42 AM

ziparchiveクラスを使用して、zipファイルを作成します。最初にターゲットZIPをインスタンス化して開き、AddFileを使用してファイルを追加し、カスタム內(nèi)部パスをサポートし、再帰関數(shù)はディレクトリ全體をパッケージ化でき、最終的にはPHPに書き込みアクセス許可があることを確認(rèn)するために保存します。

PHPでファイル拡張機(jī)能を取得するにはどうすればよいですか? PHPでファイル拡張機(jī)能を取得するにはどうすればよいですか? Sep 20, 2025 am 05:11 AM

usepathinfo($ filename、pathinfo_extension)togetthefileextension; itreliailailavaliavelyhandlesmultipledotsendedgecases、returningtheextension(例えば、 "pdf")oranemptystringifnoneexists。

See all articles