Maison développement back-end tutoriel php php 递归函数 求解,该如何处理

php 递归函数 求解,该如何处理

Jun 17, 2016 am 08:22 AM
array match quot str

php 递归函数 求解
本来按照想法,递归函数用测试数组返回来的应该是一个有2个值的二维数组。但值得到了一个数组,加红部分是不是不能这么写,那要怎么写呢?求解
================================代码如下所示=============================================================
$strr =array("周四301_菲尼克斯水星_芝加哥天空_主胜_2.10","周二302_明尼苏达山猫_印第安纳狂热_主胜_1.20","周二302_明尼苏达山猫_印第安纳狂热_客胜_2.92");

//这是分割数组的方法-----
function A($str){
//定义一个二维数组来存放根据逻辑分割出来的array
$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]){
  //先分割成(两个)数组再在递归调用A($str)
  A(array_splice($str,$i,$i));
A(array_splice($str,$i+1,$i+1));
}
  }
  array_push($newstr,$str);
 return $newstr;
 }
//------------------------
$back=A($strr);
print_r($back);
?>
==========================================================================================================

------解决方案--------------------
发现还是不需要递归

PHP code
<?php $strr =array("第一场301_菲尼克斯水星_芝加哥天空_主胜_2.10","第一场301_菲尼克斯水星_芝加哥天空_客胜_12.10","第二场301_菲尼克斯水星_芝加哥天空_主胜_2.10","第二场301_菲尼克斯水星_芝加哥天空_客胜_12.10","第三场302_明尼苏达山猫_印第安纳狂热_主胜_1.20","第三场302_明尼苏达山猫_印第安纳狂热_客胜_2.92");function B($list) {    $midList = array();    foreach($list as $line) {        preg_match_all('/((.*?_.*?_.*?)_(.*))/', $line, $match, PREG_SET_ORDER);        $match = $match[0];        if(!isset($midList[$match[2]])) {            $midList[$match[2]] = array();        }        $midList[$match[2]][] = $match[1];    }    $newList = array();    // var_dump($midList);exit;    $i = 0;    foreach($midList as $match => $oddses) {        // $newList[] = array();        $newList = _combinate($newList, $oddses);    }        return $newList;            }function _combinate($arr, $newItems) {    $newArr = array();    if(empty($arr)) {        foreach($newItems as $item) {            $newArr[] = array($item);        }        return $newArr;    }        foreach($newItems  as $newItem) {        foreach($arr as $oldItems) {            $oldItems[] = $newItem;            $newArr[] = $oldItems;        }    }    return $newArr;}echo '<pre class="brush:php;toolbar:false">';print_r(B($strr));exit;<br><font color="#e78608">------解决方案--------------------</font><br>那只是你的数据给的不太适合,排一下序就可以了<br>我并不知道你想干什么!只是根据你的代码来猜测你的思路。要是离开你的整体构思,就没有意义了<br>
Copier après la connexion
PHP code
$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);//这是分割数组的方法-----function A($str){  sort($str); //排序,把相似的摆在一起  //定义一个二维数组来存放根据逻辑分割出来的array  $newstr = array();  for($i=0;$i<count explode if array_splice array_merge a array_push return class="clear">
                 
              
              
        
            </count>
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Trier le tableau à l'aide de la fonction Array.Sort en C# Trier le tableau à l'aide de la fonction Array.Sort en C# Nov 18, 2023 am 10:37 AM

Titre : Exemple d'utilisation de la fonction Array.Sort pour trier un tableau en C# Texte : En C#, un tableau est une structure de données couramment utilisée, et il est souvent nécessaire de trier le tableau. C# fournit la classe Array, qui possède la méthode Sort pour trier facilement les tableaux. Cet article explique comment utiliser la fonction Array.Sort en C# pour trier un tableau et fournit des exemples de code spécifiques. Tout d’abord, nous devons comprendre l’utilisation de base de la fonction Array.Sort. Tableau.Donc

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Méthode simple et claire pour utiliser la fonction PHP array_merge_recursive() Méthode simple et claire pour utiliser la fonction PHP array_merge_recursive() Jun 27, 2023 pm 01:48 PM

Lors de la programmation en PHP, nous avons souvent besoin de fusionner des tableaux. PHP fournit la fonction array_merge() pour terminer la fusion du tableau, mais lorsque la même clé existe dans le tableau, cette fonction écrasera la valeur d'origine. Afin de résoudre ce problème, PHP fournit également une fonction array_merge_recursive() dans le langage, qui peut fusionner des tableaux et conserver les valeurs des mêmes clés, rendant la conception du programme plus flexible. tableau_merge

Comment utiliser la fonction array_combine en PHP pour combiner deux tableaux en un tableau associatif Comment utiliser la fonction array_combine en PHP pour combiner deux tableaux en un tableau associatif Jun 26, 2023 pm 01:41 PM

En PHP, il existe de nombreuses fonctions de tableau puissantes qui peuvent rendre les opérations sur les tableaux plus pratiques et plus rapides. Lorsque nous devons combiner deux tableaux en un tableau associatif, nous pouvons utiliser la fonction array_combine de PHP pour réaliser cette opération. Cette fonction est en fait utilisée pour combiner les clés d'un tableau avec les valeurs d'un autre tableau dans un nouveau tableau associatif. Ensuite, nous expliquerons comment utiliser la fonction array_combine en PHP pour combiner deux tableaux en un tableau associatif. En savoir plus sur array_comb

Explication détaillée de l'utilisation de la fonction PHP array_fill() Explication détaillée de l'utilisation de la fonction PHP array_fill() Jun 27, 2023 am 08:42 AM

Dans la programmation PHP, un tableau est une structure de données très importante qui peut facilement gérer de grandes quantités de données. PHP fournit de nombreuses fonctions liées aux tableaux, array_fill() en fait partie. Cet article présentera en détail l'utilisation de la fonction array_fill(), ainsi que quelques conseils d'applications pratiques. 1. Présentation de la fonction array_fill() La fonction de la fonction array_fill() est de créer un tableau d'une longueur spécifiée et composé des mêmes valeurs. Plus précisément, la syntaxe de cette fonction est

Comment utiliser le module Array en Python Comment utiliser le module Array en Python May 01, 2023 am 09:13 AM

Le module array en Python est un tableau prédéfini, il prend donc beaucoup moins d'espace en mémoire qu'une liste standard et peut également effectuer des opérations rapides au niveau des éléments telles que l'ajout, la suppression, l'indexation et le découpage. De plus, tous les éléments du tableau sont du même type, vous pouvez donc utiliser les fonctions d'opérations numériques efficaces fournies par le tableau, telles que le calcul des valeurs moyennes, maximales et minimales. De plus, le module tableau prend également en charge l'écriture et la lecture d'objets tableau directement dans des fichiers binaires, ce qui le rend plus efficace lors du traitement de grandes quantités de données numériques. Par conséquent, si vous devez traiter une grande quantité de données homogènes, vous pouvez envisager d'utiliser le module array de Python pour optimiser l'efficacité d'exécution de votre code. Pour utiliser le module array, vous devez d'abord

Quelles sont les causes courantes d'ArrayStoreException en Java ? Quelles sont les causes courantes d'ArrayStoreException en Java ? Jun 25, 2023 am 09:48 AM

En programmation Java, le tableau est une structure de données importante. Les tableaux peuvent stocker plusieurs valeurs dans une seule variable et, plus important encore, chaque valeur est accessible à l'aide d'un index. Mais lorsque vous travaillez avec des tableaux, certaines exceptions peuvent survenir, l'une d'elles est ArrayStoreException. Cet article abordera les causes courantes des exceptions ArrayStoreException. 1. Incompatibilité de type Le type d'élément doit être spécifié lors de la création du tableau. Lorsque nous essayons de stocker des types de données incompatibles dans un tableau, cela renvoie

Analyse du code source str de type Python intégré Analyse du code source str de type Python intégré May 09, 2023 pm 02:16 PM

1L'unité de base du stockage informatique Unicode est l'octet, composé de 8 bits. Étant donné que l'anglais ne comprend que 26 lettres et un certain nombre de symboles, les caractères anglais peuvent être stockés directement en octets. Mais d'autres langues (comme le chinois, le japonais, le coréen, etc.) doivent utiliser plusieurs octets pour le codage en raison du grand nombre de caractères. Avec la diffusion de la technologie informatique, la technologie de codage des caractères non latins continue de se développer, mais il existe encore deux limitations majeures : pas de support multilingue : le schéma de codage d'une langue ne peut pas être utilisé dans une autre langue et il n'existe pas de norme unifiée : par exemple, il existe de nombreuses normes d'encodage en chinois telles que GBK, GB2312, GB18030, etc. Étant donné que les méthodes d'encodage ne sont pas unifiées, les développeurs doivent effectuer des conversions entre différents encodages, et de nombreuses erreurs se produiront inévitablement.

See all articles