php:配列の中身を逆順にする方法

phpで配列を使用する時は頻繁にあると思いますが、配列の中身を逆順で使用したい場合があります。
array_reverse()関数を使用すれば、簡単に配列の要素を逆順にソートすることができます。

今回はphparray_reverse()関数を使用して、配列中身逆順にする方法をメモします。


array_reverse()関数

引数で指定した配列の要素を逆順にして、配列を返します。

$array = array_reverse($array);

使用方法(array_reverse)

下記の配列を逆順にしたい場合

Array
(
    [0] => aaa
    [1] => bbb
    [2] => ccc
    [3] => ddd
    [4] => eee
)

array_reverse()で配列の中身を逆順にします。

$arr = array('aaa', 'bbb', 'ccc', 'ddd', 'eee');
$arr = array_reverse($arr);

結果は以下のような配列が返ります。

Array
(
    [0] => eee
    [1] => ddd
    [2] => ccc
    [3] => bbb
    [4] => aaa
)

・多次元配列の場合

Array
(
    [0] => aaa
    [1] => Array
        (
            [0] => 111
            [1] => 222
        )

)

上記の配列をarray_reverse()で逆順にした場合は配列の中の配列は逆順になりません。

Array
(
    [0] => Array
        (
            [0] => 111
            [1] => 222
        )

    [1] => aaa
)

配列の値を逆順にソートして出力するときなどに使えますね。

php:phpでGDライブラリを使用した際のエラー

phpGDライブラリを使用した時に下記のエラーが表示されました。

Call to undefined function imagecreatefromgif()

phpGDライブラリを使用した際のエラーの対処方法をメモします。

調べてみたところ、GDライブラリがインストールされておらず、エラーが表示されていました。

インストール後、phpinfo()で確認し、下記のように表示されていればOKです。
※インストール後、サーバの再起動をします。

php_gd

サイトを確認したところ正常に動作しました。
エラーが起きた際は、環境を確認して有効になっているかなどを確認することが大切ですね。

php:phpでhttpsへリダイレクトする

前回は.htaccesshttpsのページへリダイレクトする方法を書きましたが、今回はphphttpsのページへリダイレクトする方法をメモします。

httpsのページが数ページ程度であれば、phpのファイルでリダイレクト処理をしてもいいかもしれないです。
その時の状況で使い分けるといいかもしれませんね。

phpでも処理内容は同じなのでhttpsではない場合に、header()関数を利用してリダイレクトします。


phpでhttpsへリダイレクト

phpファイルの先頭に下記の内容を記述します。

if (empty($_SERVER['HTTPS'])) {
	header("Location: https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
	exit();
}

$_SERVER[‘HTTPS’]が空の場合、アクセスしたURLをhttpsのページへとリダイレクトします。
httpsでアクセスした場合は上記のif文に入らないので、それ以降の処理を実行します。


php:phpで301リダイレクトする方法

WEBサイトドメインを変更した場合など、前のドメインにアクセスした際に新しいドメインに転送したい場合があります。
その場合は301リダイレクトし、現在のサイトにリダイレクトします。

301リダイレクトは永久的にサイトの引越しをする場合に使用します。
検索エンジンに引越ししたことを伝えるのでSEOを考慮してリダイレクトをすることができます。

.htaccessでリダイレクトする方法もありますが、今回はphp301リダイレクトする方法をメモします。


phpで301リダイレクト

リダイレクト元のページの先頭に下記のソースを記述します。
Locationにリダイレクト先のURLを書きます。

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://raining.bear-life.com/");
exit();
?>

前のドメインにアクセスすると、指定したURLにリダイレクトされます。
ページごとにリダイレクトを指定したい場合などはいいと思います。


php:文字列の先頭・末尾の文字を指定文字で削除する

php文字列先頭や末尾の文字を削除したい場合があります。

ltrim()とrtrim()を使用すれば、指定した文字で削除することができます。
また、ltrim()とrtrim()は削除文字を指定しない場合、先頭や末尾の空白を削除します。

phpltrim()rtrim()を使用し、文字列先頭末尾の文字を指定文字で指定して削除する方法をメモします。


ltrim()を使用し、先頭の文字を削除する

・先頭の空白を削除する場合
※全角の空白は削除されません。

php

$str = '   abcdefg';
$str = ltrim($str);
var_dump($str);

出力結果

string(7) "abcdefg"

・削除文字を指定し、先頭の文字を削除する場合

php

$str = 'abcdefg';
$str = ltrim($str, 'abc');
var_dump($str);

出力結果

string(4) "defg"

rtrim()を使用し、末尾の文字を削除する

・末尾の空白を削除する場合
※全角の空白は削除されません。

php

$str = 'abcdefg   ';
$str = rtrim($str);
var_dump($str);

出力結果

string(7) "abcdefg"

・削除文字を指定し、末尾の文字を削除する場合

php

$str = 'abcdefg';
$str = rtrim($str, 'efg');
var_dump($str);

出力結果

string(4) "abcd"