PHPは2次元配列の中のあるkeyの集合を取得する
本文はコードのために分かち合って、仕事の中でいくつかの“牛”のコードを見て、分かち合いをします.
具体的には,次の2次元配列がライブラリから読み出される.
コードリスト:
上の配列フォーマットは、主にPHP+MYSQLで遊んだことがあるので、よく知っているに違いありません.
では、このような2つのニーズがあります.
1)インデックス「id」の集合を取得し,1つの配列として保存するarray(1,2,5)を得る.
皆さんはどう書きますか?
以前の私の書き方なら直接foreach、そしてarray_pushは一つ一つ配列変数に詰まっている.これも実現できます.しかし、このような書き方は性能に影響を与える.PHP原生の関数を使うと循環効率より高いに違いないからだ.
コードリスト:
上記のコードで私たちが望む結果が得られますが、関数の使用についてはマニュアルを見たいです.
実はarrayを使う案もありますcolumn関数ですが、この関数にはPHPバージョンの要件が必要です(PHP 5>=5.5.0)
コードリスト:
そうすれば、効率はきっともっと高くなるに違いない.
2)インデックス「name」の集合を取得し,array('張三','李四','王五')を得る1つの配列として保存する.
私の従来の書き方では、同じforeachでarray_pushは一つ一つ配列変数に詰まっている.効率的なコードリストを見てください.
コードリスト:
結果:
いつもforeachの子供靴、早く訂正しましょう!
本文はCSDNから来て、転載して出典を明記してください!http://blog.csdn.net/liruxing1715/article/details/22925575
具体的には,次の2次元配列がライブラリから読み出される.
コードリスト:
$user = array(
0 => array(
'id' => 1,
'name' => ' ',
'email' => '[email protected]',
),
1 => array(
'id' => 2,
'name' => ' ',
'email' => '[email protected]',
),
2 => array(
'id' => 5,
'name' => ' ',
'email' => '[email protected]',
),
......
);
上の配列フォーマットは、主にPHP+MYSQLで遊んだことがあるので、よく知っているに違いありません.
では、このような2つのニーズがあります.
1)インデックス「id」の集合を取得し,1つの配列として保存するarray(1,2,5)を得る.
皆さんはどう書きますか?
以前の私の書き方なら直接foreach、そしてarray_pushは一つ一つ配列変数に詰まっている.これも実現できます.しかし、このような書き方は性能に影響を与える.PHP原生の関数を使うと循環効率より高いに違いないからだ.
コードリスト:
$ids = array();
$ids = array_map('array_shift', $user);
上記のコードで私たちが望む結果が得られますが、関数の使用についてはマニュアルを見たいです.
実はarrayを使う案もありますcolumn関数ですが、この関数にはPHPバージョンの要件が必要です(PHP 5>=5.5.0)
コードリスト:
$ids = array();
$ids = array_column($user, 'id');
そうすれば、効率はきっともっと高くなるに違いない.
2)インデックス「name」の集合を取得し,array('張三','李四','王五')を得る1つの配列として保存する.
私の従来の書き方では、同じforeachでarray_pushは一つ一つ配列変数に詰まっている.効率的なコードリストを見てください.
コードリスト:
$names = array();
$names = array_reduce($user, create_function('$v,$w', '$v[$w["id"]]=$w["name"];return $v;'));
結果:
array(
1 => ' ',
2 => ' ',
5 => ' ',
);
いつもforeachの子供靴、早く訂正しましょう!
本文はCSDNから来て、転載して出典を明記してください!http://blog.csdn.net/liruxing1715/article/details/22925575