php配列関数解析--array_column
2203 ワード
array_column
公式住所:array_column array_columnはPHPバージョン5.5以上でしか実行できませんが、5.3ではこの関数はサポートされていません.5.3使用する場合: array_columnはどのように使いますか? 以下の例を挙げる: 二次元配列からある列が抽出され、一次元配列となる. 2次元配列では、ある列を下付きとし、ある列を値として1次元配列とする. 次の例を見て、配列内の下付き文字に基づいて配列を再生成します:
公式住所:array_column
Fatal error: Call to undefined function array_column()
$a = array(array('discussion_id' => 123456),array('discussion_id' => 27495220), array('discussion_id' => 27495087));
$a = array_column($a,'discussion_id');
var_dump($a);
実行結果:array(3) {
[0]=>
int(123456)
[1]=>
int(27495220)
[2]=>
int(27495087)
}
$b = array(array('id'=>345,'name'=>' ','address'=>'beijing'),array('id'=>298,'name'=>' ','address'=>'shanghai'),array('id'=>390,'name'=>' ','address'=>'guangzhou'));
$b = array_column($b,'name','id');
var_dump($b);
実行結果:array(3) {
[345]=>
string(6) " "
[298]=>
string(6) " "
[390]=>
string(6) " "
}
Web実行環境のPHPバージョンが5.5未満の場合、2次元配列の列を1つの配列としてどのように抽出しますか?public static function getNewArrByElement($list, $element) {
if(!isset($list) || !is_array($list) || empty($list)) {
return array();
}
if(!isset($element) || empty($element)) {
return array();
}
$j = 0;
$result = array();
for($i = 0; $i < count($list); $i++) {
if(isset($list [$i] [$element])) {
$result [$j] = $list [$i] [$element];
$j++;
} else {
return array();
}
}
return $result;
}
$a = array(array('discussion_id' => 123456),array('discussion_id' => 27495220), array('discussion_id' => 27495087));
$a = CommonUtil::getNewArrByElement($a,'discussion_id');
実行結果:array(3) {
[0]=>
int(123456)
[1]=>
int(27495220)
[2]=>
int(27495087)
}