忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


2024/04/19 04:28 |
連想配列のソート
連想配列のソートでこれまで色々と苦労してきたんですが、ついさっきものすごい便利な関数を発見しました。
その名も array_multisort 。


[PHP]

// ソートしたい配列を定義
$dataArray[0]['name'] = '太郎';
$dataArray[0]['age'] = '15';
$dataArray[1]['name'] = '花子';
$dataArray[1]['age'] = '5';
$dataArray[2]['name'] = '清盛';
$dataArray[2]['age'] = '45';

// ソートしたい項目を定義
$sort = 'age';

// ソートの順序を定義
$order = 'DESC';


// ソートの開始
// マルチソートに使用する配列を生成
$arrayForSort = array();
foreach ($dataArray as $data) {
    $arrayForSort[] = $data[$sort];
}

// ソートの順序(昇順/降順)を決定
if (ereg("(desc|Desc|DESC)", $order)) {
    $order = SORT_DESC;
} else {
    $order = SORT_ASC;
}

// ソートの実行
array_multisort($forSort, $order, $dataArray);


// 結果の表示
print_r($dataArray);



結果については割愛しますが、上記の例でいくと、清盛→太郎→花子の順になります。
関数化しようとしてたせいか、なんだか間延びしたコードですが、気にせず必要な部分だけ使ってください(笑)


[参考文献]
www.akiyan.com/blog/archives/2007/10/phparray_multis.html
jp2.php.net/array_multisort



PR

2008/08/10 02:13 | Comments(0) | TrackBack() | PHP
半角/全角の変換方法
「全角ひら」から「半角カナ」などの文字列変換で便利なのが、mb_convert_kana関数です。

私は、キーワード検索をサイト内に設置したときにお客様から「検索条件を収集・蓄積したい」というご要望があったときに使いました。
「テスト」と「テスト」が別の単語になっちゃうのは好ましくなかったので。

使い方は簡単!というかマニュアルそのまんま。
第2引数の文字列で、どんな変換をするのかを指定しています。
詳しくは参考文献を参照してください。



[PHP]
//(半角が存在する)文字列を半角に変換
$str mb_convert_kana($str"rnask", "Shift_JIS");



[参考文献]
jp.php.net/mb_convert_kana





2008/07/19 21:58 | Comments(0) | TrackBack() | PHP
MySQLの文字列型を数値としてソート
数値をvarchar型で格納している場合、普通にORDER BYでソートすると、以下のような意図しない順序になることがあります。


number
-------------
100
1000
200
2000
...


これを「ORDER BY (number + 0)」でソートしてやると、数値としてソートされます。


number
-------------
100
200
1000
2000
...


[参考文献]
blog.tsukubasi.jp/araki/archives/135


2008/07/10 09:39 | Comments(0) | TrackBack() | MySQL
アクセスログに情報を出力する方法
「ユーザの動向を解析したい」という要件が、最近増えているように思います。
で、アクセスログに好きな情報を出力する方法を見つけました。


[参考文献]
「apacheのログに好きな情報を出す方法(PHP編)」
neta.ywcafe.net/000607.html


簡単にいうと、
1. httpd.confのログフォーマットの箇所を修正
2. apache_note()関数でログへ出力
という感じです。



ログ系の関数といえばerror_log()関数なんかもありますよね。
意外と知らない人が多いんですが、こっちも便利ですよ。



2008/07/01 10:04 | Comments(0) | TrackBack() | PHP
header()の後のexit
忙しくてなかなかメモをとる(記事を書く)時間がありませんで、書きたいことだけが貯まっていってます(汗)
とりあえず、再開一発目は軽いやつから。


header()関数でリダイレクトをすることはよくあると思いますが、その後にexitを記述していなかったことが原因でDoCoMoの携帯端末で不具合が起きていました。
headerがどんどんたまってっちゃうんですかね。。。
そこらへんのことには触れず、とりあえずheader()の後はexitしときましょう!


[php]

header("Location: http://hoge.com/");
exit;


[参考文献]
www.scollabo.com/banban/php/ref/ref_header.html



2008/06/26 23:21 | Comments(0) | TrackBack() | PHP

| HOME | 次のページ>>
忍者ブログ[PR]