PHPのいくつかの配列

不言
不言オリジナル
2018-04-23 16:37:371053ブラウズ

この記事では主にphpに関する配列を紹介していますので、必要な方は参考にしてください

データ構造のシミュレーション

配列の前に追加します

array_push
$a=array("red","green");
array_push($a,"blue","yellow");
Array ( [0] => red [1] => green [2] => blue [3] => yellow )

配列の前を削除

array_unshift
$a=array("a"=>"red","b"=>"green");
array_unshift($a,"blue");
Array ( [0] => blue [a] => red [b] => green )

配列の後に削除

$a=array("a"=>"red","b"=>"green","c"=>"blue");
echo array_shift($a);
redArray ( [b] => green [c] => blue )

phpの基本 - 2次元配列のソートarray_multisort

2次元配列または多次元配列のソートは一般的な問題であり、phpには特別なmultiソートがあります-次元配列 ソート関数を以下に簡単に紹介します:

array_multisort(array1, ソート順序, ソート タイプ, array2, array3..) は、複数の配列または多次元配列をソートする関数です。
配列1

必須。入力配列を指定します。
並べ替え順序 オプション。並べ替えの順序を指定します。可能な値は SORT_ASC と SORT_DESC です。
仕分けタイプ オプション。並べ替えの種類を指定します。可能な値は、SORT_REGULAR、SORT_NUMERIC、および SORT_STRING です。
配列2 オプション。入力配列を指定します。
配列3 オプション。入力配列を指定します。
パラメータ内の配列はテーブルの列として扱われ、行ごとに並べ替えられます。これは SQL の ORDER BY 句の機能と似ています。最初の配列は、ソートされるメインの配列です。配列内の行 (値) が同じであると比較された場合、 は次の入力配列内の対応する値のサイズに従って並べ替えられます。
最初のパラメータは配列であり、後続の各パラメータは配列、または次の並べ替え順序フラグのいずれかになります (並べ替えフラグはデフォルトの並べ替え順序を変更するために使用されます):
SORT_ASC - デフォルト、昇順で並べ替えます。 (A-Z)
SORT_DESC - 降順に並べ替えます。 (Z-A)
その後、並べ替えのタイプを指定できます:
SORT_REGULAR - デフォルト。各項目を規則正しい順序で並べます。
SORT_NUMERIC - 各項目を数値順に並べ替えます。
SORT_STRING - 各項目をアルファベット順に並べます

$a=array("red","green","blue");
array_pop($a);
Array ( [0] => red [1] => green )

たとえば、次の配列のようにします。
コードは次のとおりです:


    <?php  
        function my_sort($arrays,$sort_key,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC ){   
            if(is_array($arrays)){   
                foreach ($arrays as $array){   
                    if(is_array($array)){   
                        $key_arrays[] = $array[$sort_key];   
                    }else{   
                        return false;   
                    }   
                }   
            }else{   
                return false;   
            }  
            array_multisort($key_arrays,$sort_order,$sort_type,$arrays);   
            return $arrays;   
        }  
        $person =  array(  
                        array(&#39;id&#39;=>1,&#39;name&#39;=>&#39;fj&#39;,&#39;weight&#39;=>100,&#39;height&#39;=>180),  
                        array(&#39;id&#39;=>2,&#39;name&#39;=>&#39;tom&#39;,&#39;weight&#39;=>53,&#39;height&#39;=>150),  
                        array(&#39;id&#39;=>3,&#39;name&#39;=>&#39;jerry&#39;,&#39;weight&#39;=>120,&#39;height&#39;=>156),  
                        array(&#39;id&#39;=>4,&#39;name&#39;=>&#39;bill&#39;,&#39;weight&#39;=>110,&#39;height&#39;=>190),  
                        array(&#39;id&#39;=>5,&#39;name&#39;=>&#39;linken&#39;,&#39;weight&#39;=>80,&#39;height&#39;=>200),  
                        array(&#39;id&#39;=>6,&#39;name&#39;=>&#39;madana&#39;,&#39;weight&#39;=>95,&#39;height&#39;=>110),  
                        array(&#39;id&#39;=>7,&#39;name&#39;=>&#39;jordan&#39;,&#39;weight&#39;=>70,&#39;height&#39;=>170)  
                    );  
        var_dump($person);  
        $person = my_sort($person,&#39;name&#39;,SORT_ASC,SORT_STRING);  
        var_dump($person);   
        $person = my_sort($person,&#39;weight&#39;);  
        var_dump($person);  
    ?>

年齢順に小さいものから大きいものまで並べ替えたいと考えています。著者は2つの方法を整理して皆さんに共有しました。
1. array_multisortを使用する

この方法を使用すると、年齢を抽出して1次元配列に格納し、年齢ごとに昇順に並べる必要があります。具体的なコードは次のとおりです:

コードは次のとおりです:


$users = array(
  array(&#39;name&#39; => &#39;tom&#39;, &#39;age&#39; => 20)
  , array(&#39;name&#39; => &#39;anny&#39;, &#39;age&#39; => 18)
  , array(&#39;name&#39; => &#39;jack&#39;, &#39;age&#39; => 22)
);
$ages = array();
foreach ($users as $user) {
  $ages[] = $user[&#39;age&#39;];
}


実行後、$users はソートされた配列になり、出力して確認できます。最初に年齢で昇順に並べ替え、次に名前で昇順で並べ替える必要がある場合、メソッドは上記と同じで、追加の名前配列を抽出します。最終的な並べ替えメソッドは次のように呼び出されます。

コードは次のとおりです。以下のように:



array_multisort($ages, SORT_ASC, $users);



ここで重要なのは、まずソートするキーを 1 次元配列に格納し、次に array_multisort() 関数を使用してキーに従って配列をソートできることです。もちろん、ここで完全に並べ替えることもできます

array_multisort() 関数は適用できません

この効果は、foreach トラバーサルを通じてのみ達成することもできますが、PHP 開発者がより良い方法を提供してくれたので、不必要なトラブルを避けることができます。

PHP の 2 次元配列重複排除関数
PHP の配列には重複を削除する組み込み関数 array_unique () がありますが、PHP の array_unique 関数は 1 次元配列にのみ適用され、多次元配列には適用されません。以下は 2 次元配列を提供します。配列

array_unique 関数

array_multisort($ages, SORT_ASC, $names, SORT_ASC, $users);

関連する推奨事項:


php 配列関数 sequence array_pop() は配列の最後の要素を削除します

PHP 配列に値を割り当てる方法

以上がPHPのいくつかの配列の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHP文字列次の記事:PHP文字列