ホームページ  >  記事  >  バックエンド開発  >  多次元配列 json_encode は配列の代わりにオブジェクトを生成します

多次元配列 json_encode は配列の代わりにオブジェクトを生成します

WBOY
WBOYオリジナル
2016-07-29 08:58:051372ブラウズ

json_encode 関数は PHP 配列をエンコードでき、戻り値は json 形式の文字列です。 json_encoding の多次元配列の場合、配列形式 ({{obj1}、{obj2}、{obj3}} の形式) が返されると常に考えていましたが、今日クライアントに返されたインターフェイスで、それが配列形式であることがわかりました。配列ではなくオブジェクトになってしまいました([{....},{....},{....}]の形)、コードを確認したところ、クライアントの操作に不便でした。以前に多次元配列の最初の要素の設定を解除していたことがわかりました。その結果、異なる結果が返されました。以下のコードを見てください:

結果は次のとおりです。

多次元配列 json_encode は配列の代わりにオブジェクトを生成します最初のインデックスを削除した後、もう一度見てください:

$arr = array(
<span style="white-space:pre">	</span>0=>array('name'=>'张三','age'=>'120'),
<span style="white-space:pre">	</span>1=>array('name'=>'李四','age'=>'111'),
<span style="white-space:pre">	</span>2=>array('name'=>'王五','age'=>'233')
);


$res = json_encode($arr);
echo "<script>console.log(&#39;$res&#39;);</script>";


解決策は、sort 関数を使用してインデックスを再度作成することです。 多次元配列 json_encode は配列の代わりにオブジェクトを生成します

$arr = array(
	0=>array('name'=>'张三','age'=>'120'),
	1=>array('name'=>'李四','age'=>'111'),
	2=>array('name'=>'王五','age'=>'233')
);

unset($arr[0]); 
$res = json_encode($arr);
echo "<script>console.log(&#39;$res&#39;);</script>";

わかりました...これはブログを書く価値がないようです、自分自身への備忘録として考えてください

多次元配列 json_encode は配列の代わりにオブジェクトを生成します

上記は、多次元配列 json_encode の後に配列の代わりにオブジェクトを生成する問題を、その問題の側面も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。