ホームページ > バックエンド開発 > PHPチュートリアル > PHP オブジェクトと配列の変換

PHP オブジェクトと配列の変換

WBOY
リリース: 2016-07-28 08:26:15
オリジナル
921 人が閲覧しました

<code><span>1.</span><span><span>function</span><span>toArray</span><span>(<span>$obj</span>)</span>
{</span><span>if</span> (is_object(<span>$obj</span>)) <span>$obj</span> = (<span>array</span>)<span>$obj</span>;
    <span>if</span> (is_array(<span>$obj</span>)) {
        <span>$new</span> = <span>array</span>();
        <span>foreach</span> (<span>$obj</span><span>as</span><span>$key</span> => <span>$val</span>) {
            <span>$new</span>[<span>$key</span>] = toArray(<span>$val</span>);
        }
    } <span>else</span> {
        <span>$new</span> = <span>$obj</span>;
    }

    <span>return</span><span>$new</span>;
}</code>
ログイン後にコピー
<code><span>2.</span><span><span>function</span><span>objectToArray</span><span>(<span>$object</span>)</span> {</span><span>if</span>(!is_object(<span>$object</span>) && !is_array(<span>$object</span>))
        <span>return</span><span>$object</span>;

    <span>return</span> array_map(<span>'objectToArray'</span>, (<span>array</span>) <span>$object</span>);
}</code>
ログイン後にコピー
<code><span>3.</span>$<span><span>object</span> = <span>(object)</span> $<span>array</span>;</span></code>
ログイン後にコピー
<code><span>4.</span><span>$object</span> = <span>new</span> stdClass();
<span>foreach</span> (<span>$array</span><span>as</span><span>$key</span> => <span>$value</span>)
{
    <span>$object</span>-><span>$key</span> = <span>$value</span>;
}</code>
ログイン後にコピー
<code><span>5.</span><span>// Cast to an array</span><span>$array</span> = (<span>array</span>) <span>$object</span>;</code>
ログイン後にコピー
<code><span>5.</span><span>// get_object_vars</span><span>$array</span> = get_object_vars(<span>$object</span>);</code>
ログイン後にコピー
<code><span>6.</span><span>/**
     * 对象转数组
     * array_map(__FUNCTION__, $array); 作用到数组中的每个值上,每个值都乘以本身,并返回带有新值的数组
     * is_object($object) ? get_object_vars($object) : $object; 返回由对象属性组成的关联数组
     *<span> @param</span> $object
     *<span> @return</span> array|void
     */</span><span>public</span><span>static</span><span><span>function</span><span>objectToArray</span><span>(<span>$object</span>)</span>{</span><span>$object</span> = (<span>array</span>)<span>$object</span>;
        <span>foreach</span>(<span>$object</span><span>as</span><span>$k</span>=><span>$v</span>){
            <span>if</span>(gettype(<span>$v</span>) == <span>'resource'</span>){
                <span>return</span>;
            }
            <span>if</span>(gettype(<span>$v</span>) == <span>'object'</span> || gettype(<span>$v</span>) == <span>'array'</span>){
                <span>$object</span>[<span>$k</span>] = (<span>array</span>) StringAndArrayHelper::objectToArray(<span>$v</span>);
            }
        }
        <span>return</span><span>$object</span>;
    }</code>
ログイン後にコピー
<code><span>7.</span><span>/**
     * 数组转对象
     *<span> @param</span> $array
     *<span> @return</span> object|void
     */</span><span>public</span><span>static</span><span><span>function</span><span>arrayToObject</span><span>(<span>$array</span>)</span>{</span><span>if</span>(gettype(<span>$array</span>) != <span>'array'</span>){
            <span>return</span>;
        }
        <span>foreach</span>(<span>$array</span><span>as</span><span>$k</span>=><span>$v</span>){
            <span>if</span>(gettype(<span>$v</span>) == <span>'array'</span> || getType(<span>$v</span>) == <span>'object'</span>){
                <span>$array</span>[<span>$k</span>] = (object) StringAndArrayHelper::arrayToObject(<span>$v</span>);
            }
        }
        <span>return</span> (object)<span>$array</span>;
    }</code>
ログイン後にコピー
').addClass('事前番号付け').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上、内容の側面も含めて PHP のオブジェクトと配列の変換について紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。

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