【待望】PerlユーザのためのPHP入門 (601レス)
1-

187: 03/03/07 00:46 ID:??? AAS
教えて下さい。
配列@arrayに、'12-34','34-56'...みたいなデータが入ってて、-の右側でソートしたい場合、

@tmp = map { (split /-/)[1] } @array;
@array = @array[ sort { $tmp[$b] <=> $tmp[$a] } 0 .. $#tmp ];

でやってたんですが、同じことをPHPでやるにはどうしたらいいんでしょう?教えて下さい。
配列@arrayに、'12-34','34-56'...みたいなデータが入ってて、-の右側でソートしたい場合、

@tmp = map { (split /-/)[1] } @array;
@array = @array[ sort { $tmp[$b] <=> $tmp[$a] } 0 .. $#tmp ];

でやってたんですが、同じことをPHPでやるにはどうしたらいいんでしょう?教えて下さい。
配列@arrayに、'12-34','34-56'...みたいなデータが入ってて、-の右側でソートしたい場合、
省7
188: 03/03/07 03:08 ID:??? AAS
配列にしてからソートした方がよくない?
189
(1): 03/03/07 14:44 ID:??? AAS
>>185
Perlならこれでいいんじゃない?

@array = sort { (split(/-/,$a))[1] <=> (split(/-/,$b))[1] } @array
190: 03/03/07 16:22 ID:??? AAS
>>185

$i = 0;
for($array[$i]) {
list($first, $second) = explode("-",$array[$i]);
$first[] = $first;
$secondt[] = $second;
$i++;
}

array_multisort($second, $first);

$i++;
省5
191: 03/03/07 18:15 ID:??? AAS
>189
ソートの度になにかの処理をするって遅くならん?
192
(1): $n日後 03/03/07 18:53 ID:??? AAS
現在時刻から$n日後を求めたいいいだけどprelだと以下
($sec,$min,$hour,$mday,$mon,$year,$wday)=localtime(time + $n*24*3600);
PHPだとどうなるんだ?
あのツェラーの公式だっけか?
193
(2): 03/03/07 18:56 ID:??? AAS
>>192
>$n日後

なら純粋にtime()に86400 * nを足せばいいのでは?
194
(3): 03/03/07 19:23 ID:??? AAS
$i = 90;

$year = date("Y", time());
$day = date("n", time());
$month = date("j", time());
$hour = date("G", time());
$minute = date("i", time());
$second = date("s", time());

$timestamp = mktime($hour, $minute, $second, $month, $day + $i, $year);

print date("Y/n/j G:i:s", $timestamp);

まぁ別に変数を使う必要も無いわけだが。
195
(1): $n日後 03/03/08 13:58 ID:NNyx9+/Y(1) AAS
>>193 >>194
レスサンク!
ツェラーの公式とはまた違うか、・・・・。
PHPではツェラーの公式なんか使わなくても簡単に指定した日の
曜日とかも算出出来ちゃうんだね。
--抜粋--
また、カレンダー等でその日の曜日を知りたい時、「perl」では
Zeller(ツェラー)の公式を使って算出しなければいけませんが、
「php」では「string date (w , [timestamp])」とすると、
「timestamp」で指定した日にちの曜日を数字で返してくれます
省4
196
(1): 03/03/08 13:59 ID:??? AAS
>>195
質問が変わっている。
197: $n日後 03/03/08 14:09 ID:??? AAS
>>196
いやいや、これはこれであれはあれで・・・
失礼すました。
198
(1): 03/03/08 14:32 ID:??? AAS
Perlの場合、自前で計算したくないなら、Date::Calcを使えばいい。

>>194の回答はアホ過ぎ。timeの戻り値がシリアル値なんだから、
その性質を使わないのは勿体無い。
199
(1): 03/03/08 15:29 ID:??? AAS
>>193
うるう秒はどうするの?
200: 03/03/08 15:35 ID:??? AAS
>>199
うるう秒の意味わかってるか?
で、それをどうしたいのか?
201: 03/03/08 15:37 ID:??? AAS
うるう秒が蓄積されて誤差が1日を超えるような時間は、32bitのtimeでは指定できない。

でいいかな?

うるう秒をちゃんと考えるなら、>>194の方法で・・。
202
(1): 03/03/08 15:53 ID:??? AAS
list($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime(time() + $n*24*3600);
203: 03/03/08 15:55 ID:??? AAS
>>198
「アホでも判るように。」が信条なんだが。

で、後学の為にその性質を使ったコードを見せて頂きたい。
204: 03/03/08 15:56 ID:??? AAS
reloadなしで書くとこうなるわけですね。
>>202
サンクス

吊ってきま。
205: 03/03/10 16:59 ID:??? AAS
つづきまだー
206: &rlo;ega待期&lro; 03/03/10 17:03 ID:EpMeREtC(1) AAS

1-
あと 395 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.017s