文字列順序を変える為にsubstrを使いました。
別コードで、同手順で出来たのに、
なぜか、今回は反映されません。
コードに不備があるのでしょうか?
また、もっとスマートな手法ってあるでしょうか?
<<詳細>>
最初はarray 1,5,6.
$implode_holiday = string(3)"156"
$repeat_holiday = string(18)"156156156156156156"
<<ここが謎↓>>
$sort_holiday = string(12)"156156156156"
最終 array 1,5,6,1,5,6,1,5,6,1,5,6,
php
1//$comon_holidayは配列です。 2if(isset($comon_holiday)){ 3 // 配列から文字列へ改 4 $implode_holiday = implode($comon_holiday); 5 // 複数文字へリピート$aaはリピート回数(6) 6 $repeat_holiday = str_repeat($implode_holiday,$aa); 7 //文字列をソート $bは6を指定 8 $sort_holiday = substr($repeat_holiday , $b); 9 // 配列化 10 $ary_holiday = str_split($sort_holiday); 11}
コード自体は500行位ありますが、変数に被りはありません。
影響する様な記述は見当たらないです。
よろしくお願いします。
<<追記、変更>>
ご指摘頂いた箇所を追記します。
解り辛い記述をして申し訳ありません。
「こういう入力に対して、こういう出力が欲しいが、こういう出力になってしまう」
$repeat_holiday = string(18)"156156156156156156"に対して
開始位置を最初の$b以降としたいのですが、
substr($repeat_holiday , $b);では出来なかった。
ご指摘によりsubstrでは出来ない事を知りました。有難うございます。
この場合、どの様に処理を進めればいいのでしょうか?
$repeat_holiday = string(18)"156156156156156156"
を、$b(string '6')を使って、"6156156156156156"としたいです。
$b の一文字は変動します。
例えば$bが"5"だった場合、求める数列は
"56156156156156156"としたいです。
立て続けの質問で申し訳ありません。
初心者で解決までの糸口が得られれば本望です。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー