php配列、関連配列

14631 ワード

配列とは?PHPを使用して開発する過程で、または早いか遅いかで、多くの類似の変数を作成する必要があります.似たような変数を多く必要とせず、データを要素として配列に格納できます.配列内の要素には独自のIDがあるので、簡単にアクセスできます.
関連配列 IDキーごとに値が関連付けられた関連配列.特定の名前の値に関するデータを格納する場合、数値配列を使用するのは最善ではありません.配列を関連付けて、値をキーとして割り当てます.
 
この記事では、PHP関連配列を操作するテクニックを10個紹介し、熟練した運用で開発効率を高めることができます.
1、配列要素PHPを追加するのは弱い言語です.これは、配列とそのサイズを宣言する必要がないことを意味します.逆に、配列を同時に宣言して埋め込むことができます.
$capitals = array(  
  'Alabama' => 'Montgomery',  
  'Alaska'  => 'Juneau',  
  'Arizona' => 'Phoenix'  
); 

追加の配列要素は、次のように追加できます.
$capitals['Arkansas'] = 'Little Rock'; 

数値インデックス配列を処理している場合は、array_などの名前付き関数の前置きと追加要素を表示したい場合があります.push()とarray_unshift()関数ですが、これらの関数は関連配列を操作できません.
 
2、配列要素を削除配列から要素を削除するには、unset()関数を使用します.たとえば、次のようにします.
unset($capitals['California']); 

数値インデックス配列を使用する場合、配列要素を削除する方法はもっと多く、より柔軟で、array_を使用することができます.shift()とarray_pop()関数は、配列の先頭と末尾から要素をそれぞれ削除します.
 
3、スイッチキーと値$statesという新しい配列を作成したいと仮定し、州府をインデックスとして、州名を関連値として、array_を使用します.flip()関数はこのタスクを簡単に完了します.
$capitals = array(  
  'Alabama' => 'Montgomery',  
  'Alaska'  => 'Juneau',  
  'Arizona' => 'Phoenix'  
);  
$states = array_flip($capitals);  
// $states = array(  
//  'Montgomery' => string 'Alabama',  
//  'Juneau'     => string 'Alaska',  
//  'Phoenix'    => string 'Arizona'  
// ); 

 
4、合併配列は前の配列がWebベースの「FlashCard」サービスで使用されていると仮定し、学生がアメリカの各州の首府に対する把握状況をテストする方法を提供したいなら、arrayを使用することができます.merge()関数は、州と首府を含む配列を結合します.
$stateCapitals = array(  
  'Alabama' => 'Montgomery',  
  'Alaska'  => 'Juneau',  
  'Arizona' => 'Phoenix'  
);  
$countryCapitals = array (  
  'Australia' => 'Canberra',  
  'Austria'   => 'Vienna',  
  'Algeria'   => 'Algiers'  
);  
$capitals = array_merge($stateCapitals, $countryCapitals); 

 
5、配列値を編集配列内のデータに大文字と小文字のエラーが含まれていると仮定し、データベースに挿入する前に、これらのエラーを修正したい場合はarray_を使用します.map()関数は、配列要素ごとにコールバックを適用します.
function capitalize($element)  
{  
  $element = strtolower($element);  
  return ucwords($element);  
}  
$capitals = array(  
  'Alabama' => 'montGoMEry',  
  'Alaska'  => 'Juneau',  
  'Arizona' => 'phoeniX'  
);  
$capitals = array_map("capitalize", $capitals); 

 
6、ボタン対配列ソートFlashCardプログラムでは、アルファベット順にソートするなど、さまざまなソートが使用されます.ksort()関数ボタンを使用して関連配列をソートできます.
$capitals = array(  
  'Arizona' => 'Phoenix',  
  'Alaska'  => 'Juneau',  
  'Alabama' => 'Montgomery'  
);  
ksort($capitals); 

配列はパラメータによってksort()関数に渡されるため、ソート結果を別の変数に割り当てる必要がなくなります.
 
7、ランダム配列ソートFlashCardプログラムでは、shuffle()関数を使用して配列項目のランダムソートを実現する別のランダムソート技術も含まれています.
$capitals = array(  
  'Arizona' => 'Phoenix',  
  'Alaska'  => 'Juneau',  
  'Alabama' => 'Montgomery'  
);  
shuffle($capitals); 

配列順序を乱す必要がなく、ランダムに値を選択したい場合はarray_を使用します.rand()関数でいいです.
 
8、キーと値が存在するかどうかを確認し、in_を使用します.array()関数は、配列要素が存在するかどうかを決定します.
$capitals = array(  
  'Arizona' => 'Phoenix',  
  'Alaska'  => 'Juneau',  
  'Alabama' => 'Montgomery'  
);  
if (in_array("Juneau", $capitals))  
{  
  echo "Exists!";  
} else {  
  echo "Does not exist!";  
} 

この関数が配列キーが存在するかどうかを決定できることを知っている人は少ない.この点ではarray_key_exists()関数の機能は同じです.
$capitals = array(  
  'Arizona' => 'Phoenix',  
  'Alaska'  => 'Juneau',  
  'Alabama' => 'Montgomery'  
);  
if (array_key_exists("Alaska", $capitals))  
{  
  echo "Key exists!";  
} else {  
  echo "Key does not exist!";  
} 

 
9、配列を検索配列リソースを検索したい場合があります.これにより、ユーザーは特定の州府で関連する州を検索しやすくなり、array_search()関数は配列探索を実現する.
$capitals = array(  
  'Arizona' => 'Phoenix',  
  'Alaska'  => 'Juneau',  
  'Alabama' => 'Montgomery'  
);  
$state = array_search('Juneau', $capitals);  
// $state = 'Alaska' 

 
10、標準PHPライブラリ標準PHPライブラリ(Standard PHP Library,SPL)は開発者に多くのデータ構造、反復器、インタフェース、異常とその他の以前のPHP言語にない機能を提供し、これらの機能を使用してオブジェクト向けの文法を通じて配列を遍歴することができる.
$capitals = array(  
  'Arizona' => 'Phoenix',  
  'Alaska'  => 'Juneau',  
  'Alabama' => 'Montgomery'  
);  
$arrayObject = new ArrayObject($capitals);  
foreach ($arrayObject as $state => $capital)  
{  
  printf("The capital of %s is %s<br />", $state, $capital);  
}  
// The capital of Arizona is Phoenix  
// The capital of Alaska is Juneau  
// The capital of Alabama is Montgomery 

これはSPLの多くの偉大な機能の一つにすぎません.PHPのドキュメントを読んでください.