ホームページ > バックエンド開発 > PHPの問題 > PHP文字列をオブジェクト配列に変換する方法

PHP文字列をオブジェクト配列に変換する方法

PHPz
リリース: 2023-04-17 14:37:32
オリジナル
734 人が閲覧しました

Web サイトの開発プロセスでは、データ操作を容易にするために文字列をオブジェクト配列に変換する必要があることがよくあります。 PHP では、この機能を実現するさまざまな方法があり、この記事ではそのうちの 1 つを紹介します。

1. json_decode 関数を使用する

PHP には、JSON 形式の文字列をオブジェクトまたは配列に変換できる json_decode 関数が用意されています。以下は簡単な例です:

<?php
$str = &#39;{"name": "Tom", "age": 18}&#39;;
$obj = json_decode($str);
print_r($obj);
?>
ログイン後にコピー

出力は次のとおりです:

stdClass Object
(
    [name] => Tom
    [age] => 18
)
ログイン後にコピー

ご覧のとおり、json_decode 関数は JSON 文字列を stdClass という名前のオブジェクトに変換します。

これを配列に変換する場合は、以下に示すように、関数に 2 番目のパラメーター true を追加します。

<?php
$str = &#39;{"name": "Tom", "age": 18}&#39;;
$arr = json_decode($str, true);
print_r($arr);
?>
ログイン後にコピー

出力結果は次のとおりです。

Array
(
    [name] => Tom
    [age] => 18
)
ログイン後にコピー

json_decode 関数が JSON 文字列を連想配列に変換していることがわかります。

2. 文字列を行ごとに分割し、配列に変換します

文字列が JSON 形式でない場合は、まず行ごとに分割してから、行ごとに処理できます。以下は簡単な例です:

<?php
$str = "Tom,18\nJerry,22\n";
$arr = explode("\n", $str);
foreach($arr as $item) {
    $tmp = explode(",", $item);
    $result[] = array(
        "name" => $tmp[0], 
        "age" => $tmp[1]
    );
}
print_r($result);
?>
ログイン後にコピー

出力結果は次のとおりです:

Array
(
    [0] => Array
        (
            [name] => Tom
            [age] => 18
        )

    [1] => Array
        (
            [name] => Jerry
            [age] => 22
        )

)
ログイン後にコピー

ご覧のとおり、文字列を行ごとに分割した後、行ごとに処理され、次の内容を含むオブジェクトに変換されます。複数のオブジェクトの配列。

3. 正規表現を使用する

文字列形式がより複雑な場合、または文字列に対してより複雑な処理を実行する必要がある場合は、正規表現を使用できます。以下は簡単な例です:

<?php
$str = "name=Tom&age=18&gender=male";
preg_match_all("/(\w+)=([^&]+)/", $str, $matches);
foreach($matches[1] as $key => $value) {
    $result[$value] = $matches[2][$key];
}
print_r($result);
?>
ログイン後にコピー

出力結果は次のとおりです:

Array
(
    [name] => Tom
    [age] => 18
    [gender] => male
)
ログイン後にコピー

ご覧のとおり、クエリ文字列は正規表現を使用して連想配列に変換されます。

上記は文字列をオブジェクト配列に変換する 3 つの方法であり、読者は実際の状況に応じて適切な方法を選択できます。

以上がPHP文字列をオブジェクト配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート