PHP で単純な配列をマージする方法はたくさんありますが、今日の私の要件は、配列 ID に基づいて配列を再マージし、分類に基づいて操作することです。
最も単純な配列の結合には、array_merge を使用するだけです
array_merge() は 2 つ以上の配列のセルを結合し、1 つの配列の値が前の配列に追加されます。結果の配列を返します。
配列キー名が数値キー名で、マージされる 2 つの配列に同じ名前の数値キーがある場合、array_merge() を使用しても元の値は上書きされませんが、「+」を使用して配列をマージすると、最初に出現した値が最終結果として返され、同じキー名を持つ後続の配列の値は「破棄」されます (注: 上書きではなく、最初に出現した値が保持されます)。例:
コードは次のとおりです |
コードをコピー |
$array1 = array(1=>'0');
$array2 = array(1=> "データ");
$result1 = $array2 + $array1;/*結果は $array2 の値*/
print_r($result);
$result = $array1 + $array2 ;/*結果は $array1 の値*/
print_r($result);
$result3 = array_merge($array2,$array1);/*結果は$array2と$array1の値となり、キー名は再割り当てされます*/
print_r($result3);
$result4 = array_merge($array1,$array2);/*結果は$array1と$array2の値となり、キー名は再割り当てされます*/
print_r($result4);
出力結果は次のとおりです:
配列 ( [1] => データ )
配列 ( [1] => 0 )
配列 (
[0] => データ
[1] => 0
)
配列
(
[0] => 0
[1] => データ
)
|
2. 同じ配列キー名が文字の場合、「+」演算子はキー名が数字の場合と同じですが、array_merge() は同じキー名の以前の値を上書きします。
例:
コードは次のとおりです |
コードをコピー |
$array1 = array('asd'=>'0');
$array2 = array('asd' => "データ");
$result1 = $array2 + $array1;/*結果は $array2 の値*/
print_r($result);
$result = $array1 + $array2 ;/*結果は $array1 の値*/
print_r($result);
$result3 = array_merge($array2,$array1);/*結果は $array1*/
print_r($result3);
$result4 = array_merge($array1,$array2);/*結果は $array2*/
print_r($result4);
出力結果は次のようになります:
配列 ( [asd] => データ )
配列 ( [asd] => 0 )
配列 ( [asd] => 0 )
配列 ([asd] => データ)
|
たくさん話した後、友達に紹介したいのはこれです
例。
分類フィールドに基づいた配列の再編成
コードは次のとおりです |
コードをコピー |
//再編成する必要がある配列
$arrar=配列();
$array[]=array('アイテムID' => 110126866896,'カテゴリID' => 111);
$array[]=array('アイテムID' => 120126866896,'カテゴリID' => 112);
$array[]=array('アイテムID' => 130126866896,'カテゴリID' => 113);
$array[]=array('アイテムID' => 140126866896,'カテゴリID' => 114);
$array[]=array('アイテムID' => 150126866896,'カテゴリID' => 115);
$array[]=array('アイテムID' => 160126866896,'カテゴリID' => 116);
$array[]=array('アイテムID' => 170126866896,'カテゴリID' => 117);
$array[]=array('アイテムID' => 118126866896,'カテゴリID' => 111);
$array[]=array('アイテムID' => 121126866896,'カテゴリID' => 112);
$array[]=array('アイテムID' => 132126866896,'カテゴリID' => 113);
$array[]=array('アイテムID' => 143126866896,'カテゴリID' => 114);
$array[]=array('アイテムID' => 154126866896,'カテゴリID' => 115);
$array[]=array('アイテムID' => 165126866896,'カテゴリID' => 116);
$array[]=array('アイテムID' => 176126866896,'カテゴリID' => 117);
//配列は分類に従って再編成されます
$newArray=配列();
foreach($array as $val){
$newArray[$val['カテゴリID']][]=$val;
}
//元の配列を削除してスペースを解放します
$配列=null;
unset($array);
print_r($newArray)
?>
http://www.bkjia.com/PHPjc/633061.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/633061.html
技術記事
| PHP で単純な配列をマージする方法は多数ありますが、今日の私の要件は、配列 ID に基づいて配列を再マージし、分類に基づいて操作することです。 私が持っている最も単純な配列のマージ...