ホームページ  >  記事  >  バックエンド開発  >  PHPの再帰関数の解決策、対処方法

PHPの再帰関数の解決策、対処方法

WBOY
WBOYオリジナル
2016-06-13 13:11:10762ブラウズ

PHP 再帰関数の解決策
本来、再帰関数はテスト配列を使用して 2 つの値を持つ 2 次元配列を返すはずです。しかし、赤い部分は配列なのでどう書けばいいのでしょうか?
を解く================================コードは次のとおりです========= = ================================================ = =
<?php
$ strr = array( "木曜日301_phoenix mercury_chicago sky_home win_2.10"、 "火曜日302_minnesota lynx_indiana fever_home win_1.20"、 " >
//配列を分割する方法です-----
function A($str){
// ロジックに従って分割した配列を格納する 2 次元配列を定義します
$newstr=array();
for($i=0;$i $e1=explode("_",$str[$i ]);
$e2=explode("_",$str[$i+1]);
if($e1[0] .$e1[1].$e1[2]==$ e2[0].$e2[1].$e2[2]){
//まず (2 つの) 配列に分割し、次に再帰的に呼び出します A($str)
A(array_splice($str,$ i,$i));
A(array_splice($str,$i+1,$i+1));
}
}
array_push($newstr,$str);
return $newsstr;
}
//---------------------------- -----
$back=A($strr);
print_r($back);
?>
=============== ===== =============================================== ===================================


----- -解決策------------------ 再帰がまだ必要ないことがわかりました

PHP コード

$oddses) { // $newList[] = array(); $newList = _combinate($newList, $oddses); } $newList を返します。 } function _combinate($arr, $newItems) { $newArr = 配列(); if(空($arr)) { foreach($newItems as $item) { $newArr[] = 配列($item); } $newArr を返します。 } foreach($newItems as $newItem) { foreach($arr as $oldItems) { $oldItems[] = $newItem; $newArr[] = $oldItems; } } $newArr を返します。 } echo '
';
print_r(B($strr));
出口;
<pre class="brush:php;toolbar:false"><br>------解決策------------------<font color="#e78608"></font>それはデータが適切ではないだけです。並べ替えるだけですそれはアウトです<br>あなたが何をしたいのかわかりません!コードに基づいてアイデアを推測するだけです。全体的なアイデアがなければ意味がありません<br><br>PHP コード
$str_2=array("a_a_a_1","a_a_a_2","b_b_b_1","b_b_b_2","c_c_c_1","a_a_a_3"); //-------------------------- $back = A($str_2); print_r($back); //これは配列を分割する方法です----- 関数 A($str){ sort($str); //似たものを並べ替えます //論理的に分割した配列を格納する2次元配列を定義する $newstr = 配列(); for($i=0;$i
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。