トップページ⇒php
1001コメント284KB

【PHP】下らねぇ質問はID出して書き込みやがれ 103

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2011/01/25(火) 20:46:58ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 102
http://hibari.2ch.net/test/read.cgi/php/1292670453/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ 出来るだけスレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・IDを出さない場合、偽者や成りすましの出現を覚悟すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に極力IDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0669nobodyさん2011/02/08(火) 03:01:08ID:???
入力フォーム
<?php
$_SESSION['token_a'] = $token;
?>
<input type="text" name="user[name]" value="">
<input type="text" name="user[code]" value="">
<input type="hidden" name="token[A]" value="<?php echo $token ?>">
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
確認フォーム
<?php
if( $_SESSION['token_a'] != $_POST['token']['a'] ){
//入力へリダイレクト
}
?>
<input type="hidden" name="user[name]" value="<?php echo $_POST['user']['name'] ?>" />
<input type="hidden" name="user[name]" value="<?php echo $_POST['user']['code'] ?>" />
<input type="hidden" name="token[A]" value="<?php echo $_POST['token']['a'] ?>">
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
登録フォーム
<?php
if( $_SESSION['token_a'] != $_POST['token']['a'] ){
//入力へリダイレクト
}
//値チェック
//登録
//登録完了
//セッション削除
?>
0670nobodyさん2011/02/08(火) 03:02:57ID:???
セッション削除はtoken[A]だ。

別画面はtoken[B]にすればいいんじゃね
別に同一セッションキー使う必要なくね?
0671nobodyさん2011/02/08(火) 03:07:16ID:???
あのさ、
何で入力フォームでトークンを発行してるの?
実登録は確認後なんだから意味ないと思うんだけど…
0672nobodyさん2011/02/08(火) 03:12:00ID:???
え?なんで??

token発行
入力画面表示
↓
token存在確認&同一か確認
確認画面表示
↓
token存在確認&同一か確認
↓
登録
↓
登録完了
token削除

どこがおかしいのかな?www
0673nobodyさん2011/02/08(火) 03:15:08ID:???
>>672
おかしい

画面遷移で入力→登録なフローがあるならそれでもいいが
入力→確認→登録なら確認の時にトークンを発行するのが正しい

tokenが何の為にあるのかちゃんとした知識をつけな
0674nobodyさん2011/02/08(火) 03:18:11ID:???
おかしくねーだろ
一回登録されたら消えるんだから
確認画面をurl直接入力しても確認画面表示されないし、
完了後戻るで確認画面に行ってsubmitしてもセッションのtoken消えてるし
何が問題なんだよ?
0675nobodyさん2011/02/08(火) 03:22:08ID:???
設計がおかしいと言ってる
tokenはmd5又はsha1を使用したとして入力→確認の遷移の度にハッシュ作成のコストと32-40byte無駄なPOSTをおくるわけ
大規模なWebサービスでそれやる人間がいたら俺は駄目な奴の烙印を押す
理由はtokenが何の為にあるのか理解せず使用しているから
0676nobodyさん2011/02/08(火) 03:24:54ID:???
>>675
じゃあ俺はもう何年もダメな奴の烙印を押され続けてる事になるなwwww
0677nobodyさん2011/02/08(火) 03:32:48ID:???
卑屈になるなよ
意味もわからず風潮のみで使用して無駄なコストを払ってるのは大手サイトでもよくある事
理由無くjsをheadで定義するサイトなんてごまんとあるしね
0678nobodyさん2011/02/08(火) 07:01:14ID:???
ごめんなさい。もうしません。
0679nobodyさん2011/02/08(火) 07:35:01ID:???
HTTPリクエスト全否定ですかそうですか
0680nobodyさん2011/02/08(火) 07:50:01ID:???
まあ、HTTPも色々便利になり過ぎたから、できるものなら一度全否定するのも
いいかもね、ただ、へたすると社会が回らなくなるくらい浸透しちゃったからなあ。
0681nobodyさん2011/02/08(火) 08:11:25ID:???
トークンって何?
0682nobodyさん2011/02/08(火) 08:13:34ID:???
ググれ
0683nobodyさん2011/02/08(火) 08:17:08ID:???
ビーフンは好きだぜ
0684nobodyさん2011/02/08(火) 08:43:16ID:???
>>681
東熱で、月額定額制以外の高画質ムービー購入に
必要なポイント的なもの。
1トークン=1US$
まとめ買いで割引あり。
0685nobodyさん2011/02/08(火) 08:47:27ID:???
トークン理解した。
それなら入力データをトークンをキーに複数
セッションに保存すればいいな
0686nobodyさん2011/02/08(火) 08:50:31ID:???
可変なものをkeyとかもうね
プログラミングを初歩からやりなおせ
0687nobodyさん2011/02/08(火) 08:52:50ID:???
>>685
せっかく教えてあげたのにw
東熱のシステム見ておいで。
金のやりとりがあるから、キッチリ作ってある。
エロ動画も見られて一石二鳥だよ。
0688nobodyさん2011/02/08(火) 08:59:18ID:???
フォーム別に作れば良いだけじゃね
06896612011/02/08(火) 10:47:23ID:???
たくさんの意見ありがとうございます。ほんと感謝します

>>668
>後、そのケースだとトークンはcsrf対策にはならん
>トークンで対応出来るのはgetで登録出来るフローのみ
これはどういうことですか?
postでの送信にトークンはcsrf対策にならないってことですか?


>>669
if( $_SESSION['token_a'] != $_POST['token']['a'] ){ の検証処理ですが、
フォームごとにトークン格納用セッションを作るわけですよね。
この処理だと同じフォームのウィンドウを複数開いた時に、
先に開いた方のフォームが確認ページで不正処理されることになりませんか?
全く別のフォームを開いた時にしか機能しないんではと。。
登録後のセッション削除処理完全に忘れてました、気付かせてくれてありがとうございます。


>>673
たしかに確認画面でのトークン生成で十分ですね。
入力画面開くたびに余分な32バイト負荷かけるなんて考えもしませんでした
ありがとうございます
673さんはどうやって「複数画面(フォーム)での平行処理&CSRF対策」やってるんでしょうか?
0690nobodyさん2011/02/08(火) 11:02:53ID:???
ひろみちゅの記事でも読んどけ
http://takagi-hiromitsu.jp/diary/20060409.html
0691nobodyさん2011/02/08(火) 11:14:47ID:???
宣伝ご苦労様です
0692nobodyさん2011/02/08(火) 11:27:13ID:???
http://www.jumperz.net/texts/csrf.htm

ほれ、いろいろ足らんだろ。
0693nobodyさん2011/02/08(火) 11:58:41ID:???
ワンタイムトークン(笑)
06946612011/02/08(火) 12:03:47ID:???
>>690,692
ありがとうございます
それ両方とも読んだんですが、例に挙がってる確認画面でのpost値の保持が
hidden形式なので(高木さん)、自分のセッションに丸ごと入れるやり方だと
まんま流用できるとこまでいかないんです。
「まんま流用しないで自分で応用しろよ」て話だと思いますが
それで考えた方法が>>666です

入力〜確認〜登録 のフォームでの確認画面以降からのデータの持ち回し、
みんなhiddenでやってるわけじゃないですよね。
自分みたいにセッションに入れてる人もいるはずで、その場合どうやって
「複数画面(フォーム)での平行処理&CSRF対策」やってるんでしょうか?

ほんと長々すみません。
0695nobodyさん2011/02/08(火) 12:11:34ID:???
だからトークんをキーにkvsすればいいんだって
0696nobodyさん2011/02/08(火) 12:46:02ID:LUHffT0l
Yahoo知恵袋って何であんなに低レベルな回答者しか居ないのか教えてください
簡単な質問しか回答付いてるの見たこと無いです
0697nobodyさん2011/02/08(火) 12:53:24ID:???
ヤホーで検索して聞け
0698nobodyさん2011/02/08(火) 15:29:01ID:jnZsUAPH
ttp://www.bspeedtest.jp/
こういうの作る場合ってどのような技術が必要ですか?
0699nobodyさん2011/02/08(火) 15:32:11ID:???
flash
0700nobodyさん2011/02/08(火) 15:33:35ID:???
flashは道具であって技術とは違うだろwwwwwwwwwwwwwwwwwwww
0701nobodyさん2011/02/08(火) 15:34:58ID:???
>>698
ここで聞くって事はphpで作りたいという事?
0702nobodyさん2011/02/08(火) 15:39:26ID:???
クライアント側からサーバのデータ呼び出してクライアント側で計測するのが普通
サーバ側で計測するにしても完了通知を出さないといけないのでPHPだけじゃ出来ません
0703nobodyさん2011/02/08(火) 15:43:30ID:???
ブラウザのダウンローダーと仕組みは同じ
ダウンロードが完了しました 100MB 5秒とか出るやつね
かかった時間とロードしたデータ量から算出する
まぁJavaScriptスレにでもいってください
0704nobodyさん2011/02/08(火) 15:45:21ID:jnZsUAPH
ということはサーバからクライアントへ1MBのデータを送信するから転送量がすごいことになるって事で良いですかね?
共用サーバじゃ無理で専用サーバが必要ってことですね?
0705nobodyさん2011/02/08(火) 15:48:32ID:???
共用サーバでこの手のサービスはやってはいけない
まぁ心配するほど人来ないと思うけどな
0706nobodyさん2011/02/08(火) 16:20:08ID:jnZsUAPH
会社のサービスで行うので専用サーバで転送量を計算していろいろ考えて実装したいと思います
ありがとうございました
0707nobodyさん2011/02/08(火) 16:25:52ID:???
ヒント:Ajax
0708nobodyさん2011/02/08(火) 18:33:20ID:???
PHPerならMingでやれや
0709nobodyさん2011/02/08(火) 18:53:25ID:???
頭痛いんですけど
どうすればいいですか?
0710nobodyさん2011/02/08(火) 20:11:28ID:???
mingってまだメンテされてるの?
0711nobodyさん2011/02/08(火) 21:26:18ID:???
>>709
痛い部分を消毒したナイフで切り取って生理食塩水で10分間煮沸してください。
ラップで包んで1時間ほど冷蔵庫に寝かしたあと、塩を揉みこみながら耳たぶの柔らかさになるまでこねてください。
消毒した型に入れて180度のオーブンで15分間加熱し、常温まで冷やしてから元の位置に装着してください。
0712nobodyさん2011/02/08(火) 23:29:44ID:???
defined('AWS_API_SECRET_KEY') or define('AWS_API_SECRET_KEY', 'SECRET KEY');

defined を or で二つ書くのはどういう意味があるんでしょうか?
0713nobodyさん2011/02/08(火) 23:47:54ID:???
おれにはdefinedが1つに見える

疲れてるのかな
0714nobodyさん2011/02/08(火) 23:50:09ID:???
おお冴えてますね!
0715nobodyさん2011/02/08(火) 23:58:22ID:???
>>712 質問の仕方に問題がありますね。あなたにはこちらのスレが良いと思います。

【PHP】下らねぇ質問はID出さずに書き込みやがれ 1
http://hibari.2ch.net/test/read.cgi/php/1289117484/l50

0716nobodyさん2011/02/09(水) 00:30:56ID:NvsGmr7w
並列アクセスを実現するために、$_SESSION を利用するたび session_write_close() しないといけないんですが
echo flush() 後に session_start() を使用するにはどうすれば良いでしょうか
07177162011/02/09(水) 00:41:10ID:NvsGmr7w
申し訳御座いません書き損ねました
二度目以降の session_start() ではヘッダーは送信しない等
@演算子でエラーを抑制せずに利用できる方法・設定を教えてください
0718nobodyさん2011/02/09(水) 05:21:55ID:???
>>715 回答の仕方に悪意がありますね。あなたにはこちらのスレが良いと思います。

【PHP】下らねぇ質問はID出さずに書き込みやがれ 1
http://hibari.2ch.net/test/read.cgi/php/1289117484/l50
0719nobodyさん2011/02/09(水) 06:21:07ID:???
>>716-717
質問が高度すぎるので、僕を含めここの住民には答えられません。
ここで質問するなら、print文にカッコは必要ですか?とか
そういうレベルの質問にしてください。
0720nobodyさん2011/02/09(水) 07:47:59ID:???
>>716

>並列アクセスを実現するため
>$_SESSION を利用するたび session_write_close() しないといけない

並列アクセスの実現と$_SESSIONの利用は別々に考えましょう。
0721nobodyさん2011/02/09(水) 09:06:30ID:???
>>717
二度目かどうかチェックすればいいじゃない。
0722nobodyさん2011/02/09(水) 09:53:50ID:???
>>719-720
回答が高度すぎるので、僕を含めここの質問者には理解できません。
ここで回答するなら、print文にカッコは必要ですが何か、とか
そういうレベルの回答にしてください。
0723nobodyさん2011/02/09(水) 10:38:31ID:???
>>716
session_write_close() 後に、(その後読み込みするまでに)ほかのアクセスで変更があったものを
ページの再読み込みなく読み込みたいってことでしょうか。
いらんでしょ、そんなの。
読むだけなら、さっきよみこんだ SESSIONでいいわけだし、まだ書き込みたいなら closeすべきじゃないし。
0724nobodyさん2011/02/09(水) 11:45:18ID:???
何を言っているのかさっぱりわかりません
0725nobodyさん2011/02/09(水) 11:52:02ID:???
そもそも質問が下手糞だからわからなくて当然
0726nobodyさん2011/02/09(水) 12:02:16ID:???
flashとflushってどう違うのでしょうか
0727nobodyさん2011/02/09(水) 12:17:03ID:???
固有名詞と動詞
0728nobodyさん2011/02/09(水) 12:28:34ID:gKogpxd1
社内の開発プロジェクト、PHPでの開発を推進しました。
けれども会社の標準から外れていると言われ不採用になりました。
どうしてもPHPで開発したいんです。
どうすれば良いですか?


0729nobodyさん2011/02/09(水) 12:30:07ID:???
まずは会社の標準とやらを知ることから解決策が導き出せる
0730nobodyさん2011/02/09(水) 12:35:47ID:???
PHPってすでに使われていて離れられないか、PHPしか使えない程度の
プログラマしか調達できなくてしょうがない以外に選ぶ理由ないと
思うけどなw
0731nobodyさん2011/02/09(水) 12:38:41ID:???
普段の開発で使ってるフレームワークに模した物でも作ってアピールしろ
0732nobodyさん2011/02/09(水) 12:39:08ID:???
事故紹介はブログでやれ
07337162011/02/09(水) 12:59:48ID:NvsGmr7w
>>720>>723
ありがとうございます
はい、再読み込みなく書き込みたいということです
セッションファイルをロックしてしまうから、session_write_close() で解放しないともう一つのスクリプトが session_start() で止まってしまうんです
0734nobodyさん2011/02/09(水) 13:51:11ID:???
>>733
ロックしてしまうって、ページの表示処理が終われば勝手にcloseするんだから、
session_write_close()は、その解放待ちをなるべく早く終わらせたいって時に使うものですよ。
たぶん勘違いしてる。
0735nobodyさん2011/02/09(水) 14:22:26ID:???
だから、早く終わらせたいって言ってんじゃないの?
0736nobodyさん2011/02/09(水) 15:06:13ID:i4dE8PNb
XREA CORESERVERでサイトを作成しています。

.htaccess内で

AddHandler application/x-httpd-phpcgi .php

と記述しPHPをCGIモードで動かしていますが
この記述があると

php_value auto_prepend_file がうまく効きません。

AddHandlerの記述をコメントアウトすると効きます。
CGIモードだと効かないのかと思い検索したのですが
それっぽい記述はありませんでした。

CGIモードで、php_value auto_prepend_fileを効かせる方法があればご教授ください。
0737nobodyさん2011/02/09(水) 15:46:08ID:???
>>736
むしろ.htaccessとhttpd.confに設定を書けるのがapacheモジュールと
して実行している場合の例外なのです。

5.3.0以降でサポートされた.user.iniファイルを使うか、読み込む
php.iniファイルを別に用意してPHPRC環境変数で指定する、あたり
かな。
0738nobodyさん2011/02/09(水) 16:12:29ID:i4dE8PNb
>>737
ありがとうございます。

PHPのバージョンは確認した所5.2.5でした。
CORESERVERでPHPRC環境変数を指定する方法がわからないので
少し調べてみます。
0739nobodyさん2011/02/09(水) 17:34:43ID:i4dE8PNb
なんどもすいません。

php.iniで設定する事ができました。
ただ、php.iniの適用範囲はphp.iniが置かれたディレクトリのみのようで
これは、全ての下位ディレクトリにもphp.iniをアップロードする必要があるということでしょうか?

なにか1つでも設定が変わった場合に、全てのファイルを書き換えるのは面倒だと思いますが
一般的なサイトでもこういった運用なのでしょうか?
0740nobodyさん2011/02/09(水) 18:08:50ID:???
>>739
>>737が書いてるようにPHPRCでphp.iniを指定すればいいんじゃないの?
試してないけど.htaccessにこれでどう?
SetEnv PHPRC /dir/php.ini
0741nobodyさん2011/02/09(水) 18:09:06ID:???
一般的というとcgiで使うのがそもそも一般的じゃないからなぁ。
多分面倒だから.user.iniという仕組みが追加されたんだと思う。

でも.htaccessでPHPRCをSetEnvすれば下位ディレクトリでも
効いたような?
0742nobodyさん2011/02/09(水) 18:12:02ID:???
レンサバはcgi版が多いでしょ
0743nobodyさん2011/02/09(水) 18:27:57ID:???
>>740
できました。

本当にありがとうございました。
0744nobodyさん2011/02/09(水) 20:51:00ID:???
>>733
◆質問する時の注意
・ 質問者として、態度をわきまえること。
0745nobodyさん2011/02/09(水) 21:05:15ID:YG/3/1p4
>>677
> 理由無くjsをheadで定義するサイトなんてごまんとあるしね

jsを<head>内に書くのと<body>内に書く違いを教えてほしい
さんざんぐぐって結局明示的なこと書いてるサイト見つけられなかった
0746nobodyさん2011/02/09(水) 21:06:26ID:???
>>744
◆無意味レス嵐する時の注意
・ 嵐だとわきまえて、二度と書き込まないこと。
0747nobodyさん2011/02/09(水) 21:29:08ID:???
>>745
突然なんだw スレチだし
実行タイミングが違うだけだよ
07487452011/02/09(水) 22:00:14ID:YG/3/1p4
>>747
なるほど、わかった

スレチすまんかった
0749nobodyさん2011/02/09(水) 22:07:17ID:???
あらあら、またあの人は間違ってる事を回答してるよ…

>>745
理由はjsの<script src=によるロードはページのブロッキングがおきるから
だから例外を除き最後に書くのが今の常識
詳しくはjavascript load blockingでググるといい
07507162011/02/09(水) 22:18:28ID:NvsGmr7w
>>734-735
Cometのため、受信用スクリプトを1回のリクエストで掴んだまま、送信用スクリプトをそれとは別に動かそうとしています
他に方法がないようですので、@演算子で妥協することにします
ありがとうございました
07517162011/02/09(水) 22:27:49ID:NvsGmr7w
>>721
すみません読み逃していました
受信用スクリプトで session_start() を 2 ヶ所記述しており
1 ヶ所目が flush() より前にあって、2 ヶ所目がコネクションを掴んだままにするための while 文の中にあります
session_start() によるヘッダー送信を予め抑制する記述方法はなさそうなので、2 ヶ所目に @ 演算子をつけて使うことにします
失礼致しました
0752nobodyさん2011/02/09(水) 22:28:18ID:???
まさかと思うがそのcometはwhile(true){sleep(1)}みたいな感じで回してるんじゃないだろうな…
0753nobodyさん2011/02/09(水) 22:53:19ID:???
2回目の session_start取っ払っても同じじゃないかな。
0754nobodyさん2011/02/09(水) 23:34:18ID:GiERfPit
Warning: DOMDocument::loadHTML() [function.DOMDocument-loadHTML]: ID FOO already defined in Entity, line: BAR in /path/file.php on line BAZ
これってどういう意味の警告ですか?
読み込んだ文字列をHTMLとしてパースするときにIDの重複箇所があるって意味かと思ったのですが
文字列内にはFOOは一箇所しかありません
<?php
$doc = new DOMDocument();
$doc->loadHTML('<html><body><p id="FOO">FOO</p><p id="FOO">FOO</p></body></html>');
echo $doc->saveHTML();
?>
とIDが重複した簡単な文字列で試してみてもこの警告は出ませんでした
loadHTML()に渡した文字列のIDのことではないのですか?
この警告を消すにはどうすればいいですか
0755nobodyさん2011/02/09(水) 23:38:03ID:???
再現するコードを出してよ
0756nobodyさん2011/02/09(水) 23:42:12ID:???
コードを再現して欲しいって話じゃないのか?
0757nobodyさん2011/02/09(水) 23:44:27ID:???
じゃないと思うけど
07587162011/02/09(水) 23:50:40ID:NvsGmr7w
>>752
PHPでcometを実現するのはタブーということでしょうか

>>753
セッションファイルへの書き込みのために必要です


改めて見直すと、flush() 後にセッションファイルへの書き込みが必要なキーは、送信用スクリプトでは使わないキーで
そのキーだけ別のセッション名にすることで解決しました
本当に申し訳御座いません
0759nobodyさん2011/02/09(水) 23:54:11ID:???
タブーというかホスティング業者からBANされるだけ
0760nobodyさん2011/02/10(木) 01:37:42ID:???
>>749
まじ参考になったサンクス
0761nobodyさん2011/02/10(木) 04:49:58ID:KBWpaGBG
下記のような連想配列で、numberの数字が大きい順に並べ替えるには
どうすればよいでしょうか? この場合、東京、大阪、京都の順に変えたいです。
Array
(
[0] => Array
(
[number] => 145
[coupon_area] => 大阪
)
[1] => Array
(
[number] => 25
[coupon_area] => 京都
)
[1] => Array
(
[number] => 161
[coupon_area] => 東京
)
)

ksort, usortなどたくさんありますが、どれが適切なのかちょっと混乱してしまい、
質問させてもらいました。
0762nobodyさん2011/02/10(木) 06:59:19ID:???
>>761
$ar = Array(
Array("number" => 145, "coupon_area" => "大阪"),
Array("number" => 25, "coupon_area" => "京都"),
Array("number" => 161, "coupon_area" => "東京")
);

var_dump($ar);

$amounts = array();
foreach ($ar as $v) $number[] = $v['number'];
array_multisort($number, SORT_DESC, SORT_NUMERIC, $ar);

var_dump($ar);
0763nobodyさん2011/02/10(木) 07:00:21ID:???
×$amounts = array();
○$number = array();
0764nobodyさん2011/02/10(木) 07:40:45ID:???
numberが複数個あったらそれはnumbersです
0765nobodyさん2011/02/10(木) 09:20:14ID:???
>>761

usort($ar,function($a,$b){return $a["number"] > $b["number"] ? -1 : ($a["number"] == $b["number"] ? 0 : 1);});
0766nobodyさん2011/02/10(木) 12:49:25ID:???
perlとphpどっち使うか悩んでるですが
phpのメリットってなんですか?
0767nobodyさん2011/02/10(木) 12:57:00ID:KBWpaGBG
>>762 >>765

ありがとうございます。プログラムを参考にググったりして、
こんな感じに落ち着きました。 しかし、usortは難しくてまだちゃんと理解できてない。。

$sales = Array(
Array("number" => 145, "coupon_area" => "大阪"),
Array("number" => 25, "coupon_area" => "京都"),
Array("number" => 161, "coupon_area" => "東京")
);

pr($sales);
usort($sales, create_function('$a,$b',
'return($b[\'number\'] - $a[\'number\']);'));
pr($sales);
0768nobodyさん2011/02/10(木) 13:42:57ID:???
>>767
return文の中身は>>765よりそっちのがスマートだな。
create_function使わなくても無名関数でも十分だとは思うが。
■ このスレッドは過去ログ倉庫に格納されています