PHP 2 D配列の重量除去(キー名指定)

3692 ワード

この例では、2 D配列の指定されたキー名を削除します.ネット上ではarray_が使用されることが多いことがわかります.Uniqueやforeach遍歴などで重くなり、効果が悪く煩雑です.
この文書では、2 D配列の重み付けを引用してarray_を紹介します.column関数の3つの使い方.
以下は私がよく使う重量除去方法です.
指定したフィールドをインデックスにすると、自然とインデックスフィールドの重複する値が上書きされ、関連付けられたインデックスが除去されます.
//array_column     ,        
$data
= array( array('id' => 123, 'name' => ' '), array('id' => 123, 'name' => ' '), array('id' => 124, 'name' => ' '), array('id' => 125, 'name' => ' '), array('id' => 126, 'name' => ' ') );

 
上記は2次元配列であり、同じidの記録を削除する必要があります.すなわち、1つのIDは1つの記録しか残っていません.3番目のパラメータ試験のみを使用し、
$data = array_column($data, NULL, 'id');   // ID   
$data = array_values($data);         //      

OK、やり直し完了、この時$dataデータは以下の通り:5つの記録が4つになる
$data= array(

array('id' => 123, 'name' => '  '),

array('id' => 124, 'name' => '  '),

array('id' => 125, 'name' => '  '),

array('id' => 126, 'name' => '  ')

);

また、2番目のパラメータについては、保持する(単一)列を表し、3番目のパラメータではなく2番目のパラメータを使用します.
array_columnの2つ目の使い方:
$data = array_column($data, 'name');

このとき、2次元配列はnameフィールドのみを保持し、idフィールドは削除され、データは以下のようになります.
$data= array(

array('name' => '  '),

array('name' => '  '),

array('name' => '  '),

array('name' => '  '),

array('name' => '  ')

);

 array_columnの3つ目の使い方は、
3つのパラメータはすべて使用されます.'id'=>'name'形式のデータを構築するために使用されます.
$data = array_column($data, 'name', 'id');

このときのデータは以下の通りである:このときID重複も取り除かれ,前のものが上書きされる.
$data = array(
    '123' => '  ',
    '124' => '  ',
    '125' => '  ',
    '126' => '  '
);

see you ~
 
転載先:https://www.cnblogs.com/lz0925/p/10727995.html