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

【PHP】質問スレッドpart17【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/05/17 17:14ID:AT+bUkag
・PHP全般の質問スレです。
・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。


■本家
 http://www.php.net/

■日本 PHP ユーザ会
 http://www.php.gr.jp/

■PHP マニュアル
 http://www.php.net/manual/ja/

■PEAR マニュアル
 http://pear.php.net/manual/ja/

過去スレ, 関連スレ等>>2-4


抜けているものがあったら補足願います
0583nobodyさん04/06/03 23:11ID:???
>>579
>CGIモードではどうかと思い、
>#/usr/local/bin/php
>を先頭の行に入れて、<?phpと?>を削除しましたが、
>それでもなお、上記と同様のエラーが返ってくるばかりです。

辺りから、CLI及びCGIのPHPと、その他(ApahceSAPIなど)のPHPとで
mbsrtringモジュールの使用可能の可否が違うと思われ。
設定で変えるか、CLI及びCGIのPHPをリビルド&インストール。
058458304/06/03 23:15ID:???
エラーの吐いてるのが誰かを考えると、
PHP以前に、582氏の指摘が妥当だな。
0585nobodyさん04/06/03 23:18ID:???
でも579みたいのがcron使ってるって怖いな。
同じ鯖にはいて欲しくない。
0586nobodyさん04/06/03 23:29ID:???
定期実行の質問が出てくるとcronを使え、っていつも言ってたんだけど、
それも考えもんだね。ちょっと怖くなったよ。くわばらくわばら
0587nobodyさん04/06/03 23:55ID:???
phpをコマンドラインで実行したいのですがどうやったらいいですか?

Fedora Core1 をインストールしたままで使っています
php -v は
PHP 4.3.6 (cgi) (built: May 13 2004 05:56:26)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
です
0588nobodyさん04/06/04 00:03ID:???
 
0589nobodyさん04/06/04 00:23ID:???
>>587
>>580
0590nobodyさん04/06/04 07:54ID:???
質問してる奴やる気あんのか
0591nobodyさん04/06/04 09:19ID:???
やる気マンマンおまんまんですよ
だから皆さんに訊いてるんじゃないですか
0592nobodyさん04/06/04 09:22ID:???
聞く気があるかじゃなくて勉強する気があるのか
0593nobodyさん04/06/04 09:26ID:???
>>592
>>591
0594nobodyさん04/06/04 09:29ID:???
>>591
お前は何を質問したんだ?
0595nobodyさん04/06/04 09:33ID:???
>>594
前スレで質問して叩かれまくった
最近はしてない
0596nobodyさん04/06/04 09:36ID:???
じゃあこのスレの自浄作用は衰えていなかったようだな
0597nobodyさん04/06/04 09:53ID:???
新入社員実務配備時期なんかな?
判らない -> 上司先輩に聞く -> 少しは調べろと言われる -> MLや2chで聞く -> 叩かれる
0598nobodyさん04/06/04 11:01ID:???
>>587
マニュアルにそのまま・・・(´・ω・)
http://jp2.php.net/manual/ja/features.commandline.php
0599nobodyさん04/06/04 13:29ID:wZX1pkeC
始めまして

PHPとPSQLを使ってWEBサイトを構築しているのですが、
こちらで決めておいたメールアドレス宛にメールが送られた場合
そのメールのsubject、内容、添付ファイル等をDBに入れたいのですが
イマイチどうすればよいかよくわかりません

マニュアルを探したのですがimap関数を使えばよいのでしょうか?
サンプルプログラム等ございましたらご教授願えないでしょうか?
0600nobodyさん04/06/04 13:47ID:???
つーかよぉ
プログラムって試行錯誤して成功するのが楽しいんだろ
いきなり投げやりな質問して何がいいんだ?
自分にとって利点あるのか?
0601nobodyさん04/06/04 14:06ID:JHbJHjmL
なんとなく、質問しづらい雰囲気がありますが・・・
教えてください。

PHPからDB(例えばPostgreSQLなど)を利用する場合、
コネクションプーリングの機能とか使えたりするんでしょうか?

もしかして、DB板に行くべきですか?
0602nobodyさん04/06/04 14:37ID:???
>>601
いや、来るな。

PHPそのものにプーリング機能は無い。
パーシスタント接続はあるけどな。

PostgreSQLならpgpoolがあるからググれ。
0603nobodyさん04/06/04 14:42ID:???
>>601
俺は経験無いんだけどね。

http://www.google.co.jp/search?q=PHP+%E3%82%B3%E3%83%8D%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%97%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0&ie=UTF-8&hl=ja&lr=
0604nobodyさん04/06/04 14:53ID:???
>>601
PHPにはJavaが持っているような
DBのコネクションプーリング機能はない。
ずっと立ち上がってるAP鯖がないからね。
別個にコネクションプーリング鯖を間に
噛ませて運用する形になる。
#ってことを前スレ辺りにも書いたぞ

"別個のコネクションプーリング鯖"の話題は
DB板の汎用的な質問スレ辺りかな。
0605nobodyさん04/06/04 16:48ID:0a7YDspA
指定したアドレスにユーザがメールを送ると、メールサーバからユーザに
返信のメールを飛ばす仕組みがよくわからないんですが、どうやってるんでしょうか?
更に返信されるメール本文にURL+ユーザ固有のユニークキーを乗せたいんですが。

0606nobodyさん04/06/04 17:31ID:???
キタ━━━━━(゚∀゚)━━━━━!!!!
0607nobodyさん04/06/04 18:03ID:???
>>605
メールサーバはなに?
0608nobodyさん04/06/04 18:15ID:0a7YDspA
>607
postfixです。
0609nobodyさん04/06/04 19:21ID:???
>>602-604
ありがとうございました。しらべてみます。

>>602
DB板の人?
0610nobodyさん04/06/04 21:32ID:???
>>599
>>605
PHPに全く関係ないからな。
メールの受信をトリガーにするならprocmailを使え。続けるなら各OS板のMTAスレにいけ。
PHPでポーリングするならimap関数辺りを使え。
061157904/06/04 23:51ID:???
ありがとうございました。
<>>585さん、すみません・・・でも、もうこれからは大丈夫です>
<>>586さん、phpを実行する時の方法についての解説サイトが見つからなかったので分からずじまいでした>
cronの設定で直接、/usr/local/bin/php /full/path/to/script.phpは書けない形式だったので、
直接指定でよいと誤解したまま、/full/path/to/script.phpしか書いていなかったのが原因でした。
.sh(shell script)を指定して、間接的に>>582さんに教えて頂いたように
#!/bin/sh
MAILTO="確認メール送信先"
/usr/local/bin/php /filepath/public_html/crontab/test3.php
exit
とし、
先頭に#!/usr/local/bin/phpを書き、その次の行から普段通りの<?php 〜〜 ?>とし、
EUC-JPで改行コードはLF、パーミッションは705で00分に実行するよう指定しました。
すると、何の問題もなく動作しました。
完璧です!!
UNIXのterminalを想像すると、/usr/local/bin/php /filepath/public_html/crontab/test3.php
と来る訳も納得出来ました。普段、ファイルパスだけの指定に慣れていた為ですね。
レポートメールが届かなくなるようにする為には(>>587さんの回答にもなりますが)
コマンドラインでPHPを使う:http://www.spencernetwork.org/memo/tips-6.php
にあるように、/usr/local/bin/php -q /filepath/public_html/crontab/test3.php
とすればよさそうです。
061225704/06/05 00:38ID:wzRU3gnq
ム板のくだしつで聞いたんですが、、こちらで。


質問
$arr["hoge"][0] = "a";
$arr["hoge"][1] = "b";
$arr["fuga"][0] = "1";
$arr["fuga"][1] = "2";
$arr["fuga"][2] = "3";
という2次配列があった場合、

$arr2[0] = "a1";
$arr2[1] = "a2";
$arr2[2] = "a3";
$arr2[3] = "b1";
$arr2[4] = "b2";
$arr2[5] = "b3";
という1次配列を生成したい。2次配列の全ての要素を組み合わせた
1次配列を生成したいんです。
061325704/06/05 00:39ID:wzRU3gnq

続き。。
下記関数で$arrの要素が固定の場合はできますが、しょっぱいですよね。
動的に$arr["guha-"][n]とかが増えた場合にも適切に処理したいんです。
--
function foo($arr)
{
$k=0;
for ($i = 0; $i < count($arr["hoge"]; $i++)
 for ($j = 0; $j < count($arr["fuga"]; $j++ )
  $arr2[$k++] = $arr["hoge"][$i] . $arr["fuga"][$j];
return $arr2;
}

再起を使ってやってみたんですが、うまくいきませんでした。
教えて、モロイ人!
0614nobodyさん04/06/05 01:46ID:???
611はいい仕事をした。もつかれ。
これからもガンガレ。
0615nobodyさん04/06/05 06:56ID:???
>>612
才能で書けよ
0616nobodyさん04/06/05 10:00ID:???
ループ入れ子にすればすぐ出来そうな…
061725704/06/05 11:26ID:cLiOxb8T
>>615
勘違いされると思ったんですが、他スレの名前をそのまま使ってました。
0618nobodyさん04/06/05 12:34ID:???
>612
foreach使えば何も問題ないのでは?
0619nobodyさん04/06/05 13:05ID:???
array_keysかforeach使え。それでできないなら諦めろ。
つーか配列の要素決め打ちって、関数になってねぇじゃんw
062025704/06/05 13:18ID:cLiOxb8T
>>619
> つーか配列の要素決め打ちって、関数になってねぇじゃんw
現状、hoge,fugaだけで、この要素は確定なんです。
が、将来拡張が無いわけではないでしょうし、どうもかっこわるいもので。。。
0621nobodyさん04/06/05 13:22ID:???
>>612
hogeが先でfugaが後ってのはどこで決まってるの?
順不同で全部の組み合わせということなら、こんな感じだと思うが。
function foo($arr) {
$ret = array();
foreach (array_keys($arr) as $key1) {
foreach (array_keys($arr) as $key2) {
if ($key1 == $key2) {
continue;
}
foreach ($arr[$key1] as $val1) {
foreach ($arr[$key2] as $val2) {
$ret[] = $val1 . $val2;
}
}
}
}
return $ret;
}
062262104/06/05 13:23ID:???
げっ、タブが消えた
0623nobodyさん04/06/05 13:36ID:???
いや、13:23に再登場
062425704/06/05 13:52ID:cLiOxb8T
>>621
> >>612
> hogeが先でfugaが後ってのはどこで決まってるの?
> 順不同で全部の組み合わせということなら、こんな感じだと思うが。
説明不足ですいません。順不同でかまいません。
早速試してみますね。
ありがとうございました。
062525704/06/05 13:59ID:cLiOxb8T
ソースを追えば、ああ、なるほど。と思うんですが、
SQLでいうところの同じテーブルを別名でjoinみたいな。

Warning: Invalid argument supplied for foreach()
がでてますが、結果としては正しそうです。
もうちょっとテストしてみます。
062625704/06/05 14:03ID:cLiOxb8T
すいません。

ちゃんとみたらエラーで動いていませんでした。
コレをヒントに調べてみます。
062725704/06/05 14:18ID:cLiOxb8T
あわてて書くといけないな。。

再度すいません。

エラーがでたのは引数が間違えてました。

正しく動いてます。ありがとうございました。
062825704/06/05 15:30ID:cLiOxb8T
たびたびすいません。

621さんのは仕様を満たしていないことに気付きました。
全ての組み合わせではない(a+1, 1+aは等価)。事が必要でした。
で、下記関数でくみなしたんですが、大丈夫なようです。

こうすれば。。というのがあればご意見ください。

--
function bar($arr)
{
$keys = array_keys($arr);

$allcnt = 1;
for ($i = 0; $i < count($keys); $i++ )
{
$allcnt *= count($arr[$keys[$i]]);
}
echo $allcnt,"\n";

for ($_i = 0; $_i < count($keys); $_i++ )
{
for ($j = 0, $s=0; $j < $allcnt / count($arr[$keys[$_i]]); $j++)
{
for ($i = 0; $i < count($arr[$keys[$_i]]); $i++, $s++ )
{
$ret[$s] .= $arr[$keys[$_i]][$i];
}
}
}
return $ret;
}
0629nobodyさん04/06/05 18:53ID:kZEpDfR9
レッツPHPのチュートリアルでちょこっと紹介されていた、
ユーザエージェントによって振り分けるやつなんですが、
switch($user_agent[0]){
case "DoCoMo": $file = "〜";
〜
}
header("Location: $file");
http://〜/だとエラーも何も表示されず、http://〜/index.phpにしないとうまく機能しません。
どのようにすれば改善されるのでしょうか?

同じディレクトリにindexファイルはphp以外置いてません。
0630nobodyさん04/06/05 18:55ID:???
最初から最後までソース書いてやらないとできないやつ大杉
>>618-619の助言だけで十分だろ
0631nobodyさん04/06/05 19:13ID:???
>>629
そういう時は原因の追求ですよ。
1. index.phpを付けない時にindex.phpが呼び出されるかどうか確認する。
 print "hello"; てな簡単なスクリプトで試す。
 helloが表示されない時は、webサーバがindex.phpを補完してくれていないということで
 webサーバの設定を確認する。
2. index.phpを付けない時にuser_agent[0]に期待する値が入っているかどうか確認する。
 print $user_agent[0] てな簡単なスクリプトで試す。
063262904/06/05 19:27ID:???
>>631
どうもです。
1.helloと表示されました。→ファイル名を省略してもindex.phpがうまく表示されているようです。
2.Mozillaと表示されました。→とくに問題はないようです。

っと、「header index.php Location」で検索してみたら、同様の質問が出てきました。
ttp://216.239.53.104/search?q=cache:Fsd3QTFduvIJ:www.ybi.co.jp/koike/qa2500/qa2601.htm+header+index.php+Location&hl=ja&lr=lang_ja
ttp://216.239.53.104/search?q=cache:WmaR0tRbb8EJ:wring.xrea.jp/modules/xoopsfaq/index.php%3Fcat_id%3D2+header+index.php+Location&hl=ja&lr=lang_ja
じつは、xreaでダメだったんです。aaacafeでは問題ありませんでした。
063362904/06/05 19:36ID:???
すみません、xreaのサポート掲示板に同様のものがありました…。
ttp://216.239.53.104/search?q=cache:6Ddn8YneUqoJ:sb.xrea.com/showthread.php%3Fs%3D%26threadid%3D7011+header+index.php+Location+xrea&hl=ja&lr=lang_ja

xreaの自動挿入される広告が問題だったようです。
解決したわけではありませんが、原因がわかりました。
ありがとうございます。
いろいろな原因の追求の方法を教えていただき、感謝です。
0634nobodyさん04/06/05 21:30ID:???
>>628(>>612,613,617,620,624-628)
> こうすれば。。というのがあればご意見ください。
>>616,618,619でとっくに解決済みだけど、意見してやる。
制御構造ぐらい勉強しる。それとレスする前にまとめれ。

$arr2 = array();
if (is_array($arr)) {
foreach ($arr as $val) {
if (is_array($val)) {
foreach ($val as $key2 => $val2) {
$arr2[$key2] .= $val2;
}
}
}
}
0635nobodyさん04/06/05 21:59ID:???
$arr["hoge"][0] = "a";
$arr["hoge"][1] = "b";
$arr["fuga"][0] = "1";
$arr["fuga"][1] = "2";
$arr["fuga"][2] = "3";

$arr2 = array();
if (is_array($arr)) {
foreach ($arr as $val) {
if (is_array($val)) {
foreach ($val as $key2 => $val2) {
$arr2[$key2] .= $val2;
}
}
}
}
print_r($arr2);
// 結果
Array ( [0] => a1 [1] => b2 [2] => 3 )

違うじゃん。
063663404/06/05 22:15ID:???
こうしたいっていう結果を読み違えてた。
規則性がようわからんからもうやらね
0637nobodyさん04/06/05 22:20ID:???
>>636
「やらね」じゃなくて「できない」だろ。
>>616,618も理解していないだろうなと思ってたけど、
>>634は重症だな。
063863404/06/05 22:29ID:YJIptq+u
>>637
しゃあねーな、やってやるよ
おまえもできるんなら見せてみな
できた時間とコードを皆に判断してもらうぞ
ほら開始だ、早くやれよ
063963404/06/05 22:58ID:???
とは言ったもののムツカスィね・・
0640nobodyさん04/06/05 23:06ID:???
>>621 を少し変えただけだが、

function foo($arr) {
$ret = array();
$keys = array_keys($arr);
$indices = array_flip($keys);
foreach ($keys as $key1) {
foreach ($keys as $key2) {
if ($indices[$key2] >= $indices[$key1]) {
break;
}
foreach ($arr[$key1] as $val1) {
foreach ($arr[$key2] as $val2) {
$ret[] = $val1 . $val2;
}
}
}
}
return $ret;
}
0641nobodyさん04/06/05 23:14ID:???
$arr["hoge"][0] = "a";
$arr["hoge"][1] = "b";
$arr["fuga"][0] = "1";
$arr["fuga"][1] = "2";
$arr["fuga"][2] = "3";
$arr["geha"][0] = "い";
$arr["geha"][1] = "ろ";
$arr["geha"][2] = "は";
$arr["geha"][3] = "に";
だった場合とか考慮しなくていいの?
064267304/06/05 23:15ID:???
>>638
だれも出来るとは言って無いんだが、
あれだけ煽っといて、質問者だけのせいにして逃げるのはどうかと。
>>639
正直むずい。

$c=1;
foreach($arr as $val){
$c *=count($val);
}
foreach($arr as $val){
$c2=count($val);
for($i=0;$i<$c;$i++){
$arr2[$i] .= $val[$i%$c2];
}
}
print_r($arr2);
これでいいとは思うが。
064363704/06/05 23:16ID:???
>>642
自レス番間違えた。orz
064463704/06/05 23:23ID:???
ゴメソ。やっぱダメだった。(泣
064563704/06/05 23:30ID:???
こんどこそ。
$c=1;
foreach($arr as $val){
$c *=count($val);
}
foreach($arr as $val){
$c2=count($val);
for($i=0;$i<$c;$i++){
$k=(int)($i/($c/$c2));
$arr2[$i] .= $val[$k];
}
}
print_r($arr2);
064663704/06/05 23:32ID:???
連投スマソ。
3種類以上になるとダメでした。
064764004/06/05 23:37ID:???
>>641
Array ( [0] => 1a [1] => 1b [2] => 2a [3] => 2b [4] => 3a [5] => 3b
[6] => いa [7] => いb [8] => ろa [9] => ろb [10] => はa [11] => はb
[12] => にa [13] => にb [14] => い1 [15] => い2 [16] => い3 [17] => ろ1
[18] => ろ2 [19] => ろ3 [20] => は1 [21] => は2 [22] => は3 [23] => に1
[24] => に2 [25] => に3 )
こうなるけど、>>612 の意図どおりかどうかはわかりません。
あと、
$indices = array_flip($keys);
は不要で、
if ($indices[$key2] >= $indices[$key1]) {
break;
}
は
if ($key2 == $key1) {
break;
}
で十分でした。
0648nobodyさん04/06/05 23:42ID:I8nBdH8Q
PHPで
掲示板でよくある書き込み後に「書き込みました」って別ページに飛ぶのあるじゃないですか
それってどうやってやるんですか?
元のページで自動で戻るのはMETAで<meta http-equiv="refresh" content="5; url=元のページ">でできるんですが・・
064963704/06/05 23:42ID:???
640氏とは解釈が違うようですが。

>>637に戻ってソートを加えてみた。
$c=1;
foreach($arr as $val){
$c *=count($val);
}
foreach($arr as $val){
$c2=count($val);
for($i=0;$i<$c;$i++){
$k=(int)($i/($c/$c2));
$arr2[$i] .= $val[$i%$c2];
}
sort($arr2);
}
print_r($arr2);

もうねるぽ。
065064804/06/05 23:43ID:???
訂正

元のページへ自動で戻るのはMETAで<meta http-equiv="refresh" content="5; url=元のページ">でできるんですが・・
065163704/06/05 23:47ID:???
>>649
> $k=(int)($i/($c/$c2));
この行イラネ。
何度もスマソ。
0652nobodyさん04/06/05 23:48ID:???
>>648
「書き込みました」という別ページを表示させればいいだろ。
PHP以前の問題だからもっと勉強してからこい。
0653nobodyさん04/06/05 23:49ID:???
>>652
だからそのジャンプをPHPではどうやるのですかと。
0654カポコン04/06/05 23:52ID:???
なんかよく分からないけど、
閃(ヒラメ)いたので書いておきますね。

<?php
$ary = array(3,4,2,1,0,2,3,4);
$ary2 = array("砂糖","塩","胡椒","唐辛子","小麦粉");
foreach($ary2 as $num => $spice):
foreach($ary as $key => $val):
$ary2[$key] = $ary2[$ary[$val]];
endforeach;
endforeach;
print_r($ary2);
?>

あっ、私のホムペはココ。
ttp://f13.aaacafe.ne.jp/~mugen

趣味でやってるのであまり更新しませんがよろしこ。
0655nobodyさん04/06/05 23:53ID:???
>>653
javascriptならやり方知ってるぜ
065625704/06/05 23:53ID:???
みなさんいろいろ試されてるようで恐縮です。

>>639
そうなんですよ。以外に難しくて正直参りました。

でもこういうクイズ的なプログラミングは楽しいですね。
0657nobodyさん04/06/05 23:55ID:???
>>653
ttp://board.aaacafe.ne.jp/read.php/zatsudan/1086332333/index.html
0658nobodyさん04/06/05 23:55ID:???
>>653
だからPHP以前の問題だからもっと勉強してからこいと。
0659nobodyさん04/06/05 23:56ID:???
〜書き込み処理〜

echo "書き込みました。";
exit();
066025704/06/05 23:56ID:???
>>647
Array
(
[0] => a1い
[1] => b2ろ
[2] => a3は
[3] => b1に
[4] => a2い
[5] => b3ろ
[6] => a1は
[7] => b2に
[8] => a3い
[9] => b1ろ
[10] => a2は
[11] => b3に
[12] => a1い
[13] => b2ろ
[14] => a3は
[15] => b1に
[16] => a2い
[17] => b3ろ
[18] => a1は
[19] => b2に
[20] => a3い
[21] => b1ろ
[22] => a2は
[23] => b3に
)
こうなってほしいです。
066165704/06/05 23:58ID:???
まちがえたコッチの48の記事に書いてた。
ttp://board.aaacafe.ne.jp/read.php/zatsudan/1079490157/index.html
0662nobodyさん04/06/06 00:04ID:???
>>660
>>649での結果と並びが違うけどダメなのか?
0663nobodyさん04/06/06 00:05ID:???
>>661
参考にならんそんな糞サイトを教えるとは性質が悪いなw
0664nobodyさん04/06/06 00:07ID:???
header(Location: );
でエラー起るんですよ〜
0665nobodyさん04/06/06 00:09ID:???
( -д-)ツマラン
0666nobodyさん04/06/06 00:10ID:???
十分なりました。
066725704/06/06 00:15ID:???
>>662
ソート順は意識してません。(すべて等価です。)

ソートが入ると結果がみやすいですね。
動作はOKです。すばらしい。

0668nobodyさん04/06/06 00:21ID:???
>>664
header()の前に空行とか何か出力してるんじゃねぇの?
0669nobodyさん04/06/06 00:24ID:???
>>667
よくスクリプトを見たほうがいい。
ソートは見た目じゃなくて必然だ。
0670カポコン04/06/06 00:30ID:???
>>660
こういうのでよければどうぞ、何も複雑な事はしてませんが。
<?php
$alpha = array("a","b");
$num = array(1,2,3);
$kana = array("い","ろ","は","に");
$i = 0;
$ans = array();
while($i < 24):
$a = $i % 2;
$b = $i % 3;
$c = $i % 4;
$ans[$i] = ($a == 0)?$alpha[0]:$alpha[1];
if($b == 0):$ans[$i] .= $num[0];
elseif($b == 1):$ans[$i] .= $num[1];
else:$ans[$i] .= $num[2];
endif;
if($c == 0):$ans[$i].=$kana[0];
elseif($c == 1):$ans[$i] .= $kana[1];
elseif($c == 2):$ans[$i] .= $kana[2];
else:$ans[$i] .= $kana[3];
endif;
$i++;
endwhile;
print_r($ans);
?>
0671カポコン04/06/06 00:36ID:???
つまんね〜から寝ます。おやすみ〜。
0672nobodyさん04/06/06 00:39ID:???
ファンが出来るわけだ・・・。
067325704/06/06 00:47ID:???
>>669
すいません。酒ノンでてあまり集中してみれませんが。

この部分、難解ですね。
> $k=(int)($i/($c/$c2));
> $arr2[$i] .= $val[$i%$c2];

>>670
動的に配列が増えた場合に対応できますでしょうか。
そこが今回のポイントでもあるんですが。。。。
0674nobodyさん04/06/06 00:52ID:???
>>673
>>651
0675カポコン04/06/06 00:53ID:???
あっ電源切る瞬間にまた閃いたから書いておきますね。
>>660さん。これでOKと思います。
<?php
$alpha = array("a","b");
$num = array(1,2,3);
$kana = array("い","ろ","は","に");
$i = 0;
$ans = array();
while($i < 24):
$x = $i % count($alpha);
$y = $i % count($num);
$z = $i % count($kana);
$ans[$i] = $alpha[$x].$num[$y].$kana[$z];
$i++;
endwhile;
print_r($ans);
?>
0676nobodyさん04/06/06 01:22ID:???
動的つってんのに24で決め打ちするバカ
0677nobodyさん04/06/06 01:31ID:???
だからカポコンなのさ。
0678nobodyさん04/06/06 01:53ID:???
カポコンは応用の利くソフト設計ができない。
静的なんてねぇ
067925704/06/06 02:53ID:???
>>669
わかた!
$arr[hoge][0]=a
$arr[hoge][1]=b
$arr[fuga][0]=1
$arr[fuga][1]=2
のとき、
a1
b2
a1
b2
となるのを防ぐために、いちいちsortしてるのか。つーか、俺のはバグって真下。
同じようにsortを入れると正常になりました!

勉強になります。
0680nobodyさん04/06/06 03:09ID:???
つか、重複する値は、最後に array_unique で削除すればいいと思うんやけど。
068125704/06/06 03:14ID:???
>>680
重複しないロジックとしてくんでいます。
仮にuniqueで重複が削除されるなら、それはロジックにバグがあるということです。
0682nobodyさん04/06/06 03:38ID:???
function 再帰関数(&$1次元のりふぁれんす, $2次元の値, $文字 = '') {
if (is_array($ちょっとだけ = array_shift($2次元の値))) {
foreach ($ちょっとだけ as $2次元の値の値) {
$一番大切 = 再帰関数($1次元のりふぁれんす, $2次元の値, "$文字$2次元の値の値");
if (!count($2次元の値)) array_push($1次元のりふぁれんす, $一番大切);
}
}
return $文字;
}

$2次元 = array(
'PHP' => array(1, 2, 3, 4),
'Hypertext' => array('a', 'b'),
'Preprocessor' => array('x', 'y', 'z'),
'カポコン神' => array('カ', 'ポ', 'コ', 'ン', 'は', '糞')
);
$1次元 = array();
再帰関数($1次元, array_values($2次元));
print_r($1次元);
■ このスレッドは過去ログ倉庫に格納されています