ホームページ > バックエンド開発 > PHPチュートリアル > PHP 開発ノート シリーズ (9) - 配列 (3)

PHP 開発ノート シリーズ (9) - 配列 (3)

WBOY
リリース: 2016-06-13 13:05:27
オリジナル
864 人が閲覧しました

PHP 開発ノート シリーズ (9) - 配列 (3)

??? PHP 配列の日常的な使用法について 2 つの記事を書きました。この記事は「PHP 開発ノート シリーズ (9) - 配列 (3)」です。 、主に配列のサイズと並べ替えに焦点を当てます。


??? 1. 配列の長さを取得します

??? count() 関数は、配列内の要素の数を返します。これは、sizeof() と count() の別名です。

?

file: count.php
url: http://localhost:88/array/count.php
<?php

    $map['1st'] = '1st value'; 
    $map['2nd'] = '2nd value'; 
    $map['3rd'] = '3rd value';

    echo count($map);
    
?>
ログイン後にコピー

?

??? count() 関数は、カウントする最初の配列変数を受け入れることに加えて、再帰が必要かどうかを指定するモード パラメータを受け入れ、多次元のすべての要素の数をカウントすることもできます。配列は次のようにコード化されます:

?

file: count.php
url: http://localhost:88/array/count.php
<?php
    
    $school['grade1']['class1'] = 'class1, grade1'; 
    $school['grade1']['class2'] = 'class2, grade1'; 
    $school['grade1']['class3'] = 'class3, grade1'; 
    $school['grade2']['class1'] = 'class1, grade2'; 
    $school['grade2']['class2'] = 'class2, grade2'; 
    $school['grade2']['class3'] = 'class3, grade2'; 
    $school['grade3']['class1'] = 'class1, grade3'; 

    echo count($school);
    
    echo count($school, 1);
    
?>
ログイン後にコピー

?

??? 2. 配列要素の出現頻度をカウントします

??? array_count_values() 関数は、関連付けられたキー/値を含む配列を返します。たとえば、「A」は 2 回表示され、「B」は 1 回表示されます。コードは次のとおりです:

?

file: array_count_values.php
url: http://localhost:88/array/array_count_values.php
<?php

    $favor = array('Sport', 'Travel', 'Sport' , 'Sing');

    $stats = array_count_values($favor);
    
    print_r($stats);
    
    echo "<br/>====================<br/>";
    
    $favor1 = array('1'=>'Sport', '2'=>'Sing', '3'=>'Sing', '4'=>'Travel');
    
    $stats1 = array_count_values($favor1);
    
    print_r($stats1);
    
?>
ログイン後にコピー

?

??? 3. 配列 の非反復要素を返します。

??? array_unique() 関数は、配列内の重複する値をすべて削除し、元の配列の要素は変更されないままの配列を返します。 >

?

file: array_unique.php
url: http://localhost:88/array/array_unique.php
<?php

    $favor = array('Sport', 'Travel', 'Sport' , 'Sing');

    $unique = array_unique($favor);
    
    print_r($favor);
    
    echo "<br/>====================<br/>";
    
    print_r($unique);
    
?>
ログイン後にコピー
?

??? 4. 配列のソート

??? sort() 関数は配列を並べ替え、要素は値の低いものから高いものの順に並べられます。 sort() 関数はソートされた配列を返しません。代わりに、ソートするだけで、結果に関係なく値を返しません。同時に、並べ替えの並べ替えルールを指定できます。たとえば、SORT_NUMERIC は数値で並べ替えられ、SORT_REGULAR は ASCII 値で並べ替えられ、SORT_STRING は文字列で並べ替えられます。コードは次のとおりです:

??

??? 注: sort() 関数は渡された配列の値を直接変更します。以下のプログラムの出力を注意深く確認してください。

?

file: sort.php
url: http://localhost:88/array/sort.php
<?php

    $number = array(1, 4, 3, 2, 5, 10, 7, 1, 2);
    print_r($number);
    echo '<br/>';
    sort($number, SORT_NUMERIC);
    print_r($number);
    
    echo "<br/>====================<br/>";
    
    $letter = array('a', 'A', 'Z', 'f', 'G', 'e');
    print_r($letter); 
    echo '<br/>';  
    // 默认是模式是SORT_REGULAR
    sort($letter, SORT_REGULAR);
    print_r($letter);
    
    echo "<br/>====================<br/>";
    
    $string = array('Jack', 'Mike', 'Mary', 'Jassica', 'Ruby');
    print_r($string);
    echo '<br/>';  
    sort($string, SORT_STRING);
    print_r($string);
    
?>
ログイン後にコピー
?

??? 上記の結果から、sort() 関数は配列に渡された要素を変更するだけでなく、維持する必要がある場合にはキーと値の間の対応関係も変更することがわかります。キーと値のペアの関係を指定するには、次のように asort() 関数を使用する必要があります:

?

?
file: asort.php
url: http://localhost:88/array/asort.php
<?php

    $number = array(1, 4, 3, 2, 5, 10, 7, 1, 2);
    print_r($number);
    echo '<br/>';
    asort($number, SORT_NUMERIC);
    print_r($number);
    
    echo "<br/>====================<br/>";
    
    $letter = array('a', 'A', 'Z', 'f', 'G', 'e');
    print_r($letter); 
    echo '<br/>';  
    // 默认是模式是SORT_REGULAR
    asort($letter, SORT_REGULAR);
    print_r($letter);
    
    echo "<br/>====================<br/>";
    
    $string = array('Jack', 'Mike', 'Mary', 'Jassica', 'Ruby');
    print_r($string);
    echo '<br/>';  
    asort($string, SORT_STRING);
    print_r($string);
    
?>
ログイン後にコピー

??? 5. 逆順に並べ替えます

??? rsort() 関数は、キーと値のペアの関係を維持するモードと維持しないモードがあります。使用方法は同じです。


??? 6. 配列の自然な並べ替え

??? sort、student1.jpg、studdent10.jpg などの一般的な並べ替えを使用した後、student1.jpg、student2.jpg、student10.jpg、student20.jgp などの配列を並べ替える場合、順序はstudent2.jpg、student20.jpgですが、予想される順序は、student1.jpg、student2.jpg、studdent10.jpg、student20.jpgです。このとき、natsort() 関数を使用する必要があります。

?

?
file: natsort.php
url: http://localhost:88/array/natsort.php
<?php

    $student = array('student1.jpg', 'student20.jpg', 'student10.jpg', 'student2.jpg');
    
    print_r($student);
    
    echo "<br/> ========================== <br/>";
    
    sort($student);
    
    print_r($student);
        
    echo "<br/> ========================== <br/>";
    
    natsort($student);
    
    print_r($student);
    
?>
ログイン後にコピー

??? natsort() 関数には、natcasesort() 関数と呼ばれるバリアントもありますが、大文字と小文字の区別がない点を除けば、機能的には natsort() 関数と同じです。

?

file: natcasesort.php
url: http://localhost:88/array/natcasesort.php
<?php

    $student = array('student1.jpg', 'Student20.jpg', 'student10.jpg', 'Student2.jpg');
    
    natcasesort($student);
    
    print_r($student);
    
?>
ログイン後にコピー
?

??? 7. 配列をキー値でソートします

??? 上記の関数は主に数値キー配列をソートする場合、キー値によるソートなどの特別な要件が必要になる場合があります。 () 関数は、成功すると TRUE を返し、失敗すると FALSE を返します。同時に、sort() 関数と同様に、sort_flags パラメータ (SORT_NUMERIC、SORT_REGULAR、SORT_STRING) を受け入れ、並べ替えモードを指定します。コードは次のとおりです:

?

file: ksort.php
url: http://localhost:88/array/ksort.php
<?php

    $student['Jack'] = 'Jack Lee';
    $student['Samamda'] = 'Samamda Mo';
    $student['Smart'] = 'Smart Chan';
    $student['Mary'] = 'Mary Lu';
    $student['Ban'] = 'Ban Chuang';
    
    print_r($student);
    
    echo "<br/> ========================== <br/>";
    
    ksort($student);
    
    print_r($student);
        
?>
ログイン後にコピー

?

??? 8. カスタム並べ替えルール

??? Php には、usort() というカスタムの並べ替えメソッドも用意されており、この関数で指定されたユーザー定義の比較アルゴリズムを使用して配列を並べ替えることができます。ただし、一般的には控えめに使用されるため、自分で試してみることができます。


???


??? Php 配列のソート部分はここまでです。次回は、Php 配列の続きの内容を続けます。


??? 記事アドレス: http://ryan-d.iteye.com/blog/1566686

?

?

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート