- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:配列IF()について質問です。)
配列IF()の問題について
このQ&Aのポイント
- 配列IF()を使用しているときに、-1が連続して入った場合の解決方法について質問です。
- 現在の式では、配列に-1が二つ入ると正しく動作しなくなってしまいます。
- 連続して-1が入った場合の解決策も教えていただきたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
おそらくこんなことがやりたい? <?PHP $king_array=array(100,-1,-1,-1,60,59,58,-1,50,-1,-1,20); $tmp=$king_array; foreach($tmp as $key=>$val){ if($val==-1) unset($tmp[$key]); } $pre_key=null; foreach($tmp as $key=>$val){ if(is_null($pre_key)){$pre_key=$key;continue;} for($i=1;$i<$key-$pre_key;$i++){ $king_array[$pre_key+$i]=$tmp[$pre_key] - ($tmp[$pre_key]-$val)/($key-$pre_key) * $i; } $pre_key=$key; } print_r($king_array); ?>
その他の回答 (2)
- shimix
- ベストアンサー率54% (865/1590)
回答No.2
配列を書き替えているなら、array_searchの戻り値がfalseになるまでwhileでLoopさせればいいだけじゃないの? というか、以前(複数存在する可能性があるなら)array_keysで第二引数を指定すればいいのでは?って書いて、無視されたんだけどww
質問者
お礼
せっかちなのでお礼し忘れる事が多々あります。
- t_ohta
- ベストアンサー率38% (5241/13712)
回答No.1
array_search を使わずに foreach を使って処理した方がいいんじゃないですか。
質問者
お礼
ありがとうございます。試してみます。
補足
まさに私がやりたい事ができました。大先生と呼ばせて頂きたいくらい感謝します!