• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:配列IF()について質問です。)

配列IF()の問題について

このQ&Aのポイント
  • 配列IF()を使用しているときに、-1が連続して入った場合の解決方法について質問です。
  • 現在の式では、配列に-1が二つ入ると正しく動作しなくなってしまいます。
  • 連続して-1が入った場合の解決策も教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.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); ?>

drmada
質問者

補足

まさに私がやりたい事ができました。大先生と呼ばせて頂きたいくらい感謝します!

その他の回答 (2)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

配列を書き替えているなら、array_searchの戻り値がfalseになるまでwhileでLoopさせればいいだけじゃないの? というか、以前(複数存在する可能性があるなら)array_keysで第二引数を指定すればいいのでは?って書いて、無視されたんだけどww

drmada
質問者

お礼

せっかちなのでお礼し忘れる事が多々あります。

  • t_ohta
  • ベストアンサー率38% (5241/13712)
回答No.1

array_search を使わずに foreach を使って処理した方がいいんじゃないですか。

drmada
質問者

お礼

ありがとうございます。試してみます。

関連するQ&A