ホームページ > php教程 > php手册 > PHPは2次元配列内の特定のキーのコレクションを取得します

PHPは2次元配列内の特定のキーのコレクションを取得します

WBOY
リリース: 2016-08-26 10:13:05
オリジナル
1844 人が閲覧しました

この記事はコード共有用です。作業中に「大きな」コードを見つけたので共有したいと思います。

具体的には、以下の二次元配列をライブラリから読み込みます。

コードリスト:

[php] プレーンに表示 コピー
PHPは2次元配列内の特定のキーのコレクションを取得しますPHPは2次元配列内の特定のキーのコレクションを取得します
  1. $user = array(
  2. 0 => 配列(
  3. withで E'名前'= & gt; '張三'、
  4. )、
  5. 1 => 配列( ;
  6. ;
  7. 'name' => )、 2 =>
  8. 配列(
  9. with E'名前'= & gt; '王五'、
  10. ️ =>
  11. )、
  12. );
  13. 上記の配列形式は、主に PHP+MYSQL を使ったことがある人なら誰でもよく知っているものです。
  14. それで、次の 2 つの要件があります: 1) インデックス「id」のコレクションを取得し、それを 1 ビット配列として保存します。つまり、get array(1,2,5)
  15. 友達ならどう書くか分かりません? 以前の書き方であれば、foreachを直接使用し、array_pushを使用して配列変数に1つずつ詰めるでしょう。これも実現可能です。ただし、PHP のネイティブ関数を使用する方がループよりも確実に効率的であるため、この書き方はパフォーマンスに影響します。
  16. コードリスト:
  17. [php] プレーンに表示
  18. コピー


$ids =

array();

$ids =
array_map(
'array_shift',

$user);


上記のコードは私たちが望む結果を得ることができます。関数の使用方法についてはマニュアルを参照してください。

実際、ここには array_column 関数を使用する別の解決策がありますが、この関数には PHP バージョン要件 (PHP 5 >= 5.5.0) が必要です

コードリスト:

[php] プレーンに表示 コピー
PHPは2次元配列内の特定のキーのコレクションを取得しますPHPは2次元配列内の特定のキーのコレクションを取得します
  1. $ids = array(); $ids = array_column(
  2. $user,
  3. 'id');
  4. この場合、効率は間違いなく高くなります。

2)

インデックス「name」のセットを取得し、それを 1 ビット配列として保存します。つまり、get array('Zhang San','Li Si','Wang Wu')

以前の書き方によると、foreachはそのままで、array_pushで配列変数に一つずつ詰め込んでいきます。効率的なコードのリストを参照してください。

コードリスト:

[php]

プレーンに表示

コピー
PHPは2次元配列内の特定のキーのコレクションを取得します PHPは2次元配列内の特定のキーのコレクションを取得します $names = array();
$names =
array_reduce(
    $user, create_function(
  1. '$v,$w', '$v[$w["id"]]=$w["name"];return $v;' ));
  2. 結果を取得:
  3. [php] プレーンに表示
  4. コピー


配列(
1 => 「張三」、PHPは2次元配列内の特定のキーのコレクションを取得します PHPは2次元配列内の特定のキーのコレクションを取得します 2 => '李思'、 5 =>
'王五'、
  1. );
  2. 頻繁に修理される子供用の靴は、できるだけ早く直してください。
  3. この記事はCSDNからのものです。転載する場合は出典を明記してください。 http://blog.csdn.net/liruxing1715/article/details/22925575
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート