English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP 基礎チュートリアル

PHP 高級チュートリアル

PHP & MySQL

PHP リファレンスマニュアル

PHP 配列のソート

このチュートリアルでは、PHPで配列の要素やキーを昇順または降順にソートする方法を学びます。

PHP関数で配列をソートする

前章では、PHPの配列の基本について学びました。配列とは何か、どのように作成するか、どのように構造を確認するか、どのように要素にアクセスするかなどです。配列を使って、指定された順序で要素をソートすることもできます。

PHPには、アルファベットや数字の昇順または降順で配列の要素を異なる方法でソートするために特別に設計された多くの内蔵関数が付属しています。ここでは、配列のソートに最もよく使用される関数について説明します。

  • sort() 和 rsort() — インデックス配列をソートする

  • asort() 和 arsort() — 関連配列を値でソートする

  • ksort() 和 krsort() — 関連配列をキーでソートする

インデックス配列を昇順にソートする

sort()関数は、インデックス配列の要素を昇順にソートするために使用されます(アルファベットはアルファベット順、数字は数字順)。

<?php
//配列を定義します
$colors = array("Red", "Green", "Blue", "Yellow");
 
//配列をソートして印刷します
sort($colors);
print_r($colors);
?>
テストを確認してください‹/›

print_r()文法が以下のオプションを出力します:

 Array ( [0] => Blue [1] => Green [2] => Red [3] => Yellow )

同様に、配列の数字要素を昇順にソートすることもできます。

<?php
//配列を定義します
$numbers = array(1, 2, 2.5, 4, 7, 10);
 
//配列をソートして印刷します
sort($numbers);
print_r($numbers);
?>
テストを確認してください‹/›

print_r()文法が以下のオプションを出力します:

Array ( [0] => 1 [1] => 2 [2] => 2.5 [3] => 4 [4] => 7 [5] => 10 )

インデックス配列を降順にソートする

rsort()関数は、インデックス配列の要素を降順にソートするために使用されます(アルファベット順にアルファベット、数字順に数字)。

<?php
//配列を定義します
$colors = array("Red", "Green", "Blue", "Yellow");
 
// 配列をソートして印刷します
rsort($colors);
print_r($colors);
?>
テストを確認してください‹/›

print_r()文法が以下のオプションを出力します:

Array ( [0] => Yellow [1] => Red [2] => Green [3] => Blue )

同様に、配列の数字要素を降順にソートすることもできます。

<?php
//配列を定義します
$numbers = array(1, 2, 2.5, 4, 7, 10);
 
//配列をソートして印刷します
rsort($numbers);
print_r($numbers);
?>
テストを確認してください‹/›

print_r()文法が以下のオプションを出力します:

Array ( [0] => 10 [1] => 7 [2] => 4 [3] => 2.5 [4] => 2 [5] => 1 )

値で配列を昇順にソートします

asort()関数は、値に基づいて連想配列の要素を昇順にソートします。sort()関数と似ていますが、ソート時にキーと値の関連を保持します。

<?php
//配列を定義します
$age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35);
 
//値で配列をソートして印刷します
asort($age);
print_r($age);
?>
テストを確認してください‹/›

print_r()文法が以下のオプションを出力します:

Array ( [Harry] => 14 [Peter] => 20 [Clark] => 35 [John] => 45 )

値で配列を降順にソートします

arsort()関数は、値に基づいて連想配列の要素を降順にソートします。rsort()関数と似ていますが、ソート時にキーと値の関連を保持します。

<?php
//配列を定義します
$age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35);
 
//値で配列をソートして印刷します
arsort($age);
print_r($age);
?>
テストを確認してください‹/›

print_r()文法が以下のオプションを出力します:

Array ( [John] => 45 [Clark] => 35 [Peter] => 20 [Harry] => 14 )

連想配列をキーで昇順にソートします

ksort()関数は、キーに基づいて連想配列の要素を昇順にソートします。asort()関数と同様に、ソート時にキーと値の関連を保持します。

<?php
//配列を定義します
$age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35);
 
//キーで配列をソートして印刷します
ksort($age);
print_r($age);
?>
テストを確認してください‹/›

print_r()文法が以下のオプションを出力します:

Array ( [Clark] => 35 [Harry] => 14 [John] => 45 [Peter] => 20 )

連想配列をキーで降順にソートします

ksort()関数は、asort()関数と同様に、連想配列の要素をキーに昇順にソートします。ソート時にキーと値の関連を保持します。

<?php
//配列を定義します
$age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35);
 
//キーで配列をソートして印刷します
krsort($age);
print_r($age);
?>
テストを確認してください‹/›

print_r()文法が以下のオプションを出力します:

Array ( [Peter] => 20 [John] => 45 [Harry] => 14 [Clark] => 35 )