php论坛学习的一个遍历的问题(学习) 简单

<?php

$str = "{黄色}{绿色}{红色}@{大号}{中号}{小号}@{男款}{女款}{儿童}";
$array1 = explode("@", $str);
$array = array();
foreach ($array1 as $row)
{
        $_array = array();
        //preg_match_all('/\{(.*?)\}/', $row, $_array);
        //preg_match_all('/\{(.*?)\}/', $row, $_array);
        preg_match_all('/{(.*?)}/',$row, $_array);
        //重复0次或者一次
        //前面是{字符,
        //.* 表示匹配任意数量的字符 
        //?重复0次或者一次
        //  /{(.*?)}/ 以‘{’开始中间以任意数量的字符出现一次或0次, 以'}'结束
        //var_dump($_array);
        //echo "<BR>===============<BR>";
        $array[] = $_array[1];
        $_array = null;
}

var_dump($array);
echo "<BR><BR><BR>";

function my($array)
{
        //$array是数组   count($array) = 3;
        return my2($array, count($array));
}
 
function my2($array, $count, $start = 0)
{
        static $_array = array();
        static $_row = array();
         
        //$array[$start] //相当于循环一数属性
        //循环第一数属性 
        //$array[0] = [0]=> string(6) "黄色" [1]=> string(6) "绿色" [2]=> string(6) "红色"
        //$array[1] = [0]=> string(6) "大号" [1]=> string(6) "中号" [2]=> string(6) "小号"
        //$array[2] = [0]=> string(6) "男款" [1]=> string(6) "女款" [2]=> string(6) "儿童" 
        var_dump($_row);
        echo "<BR><BR>====================================<BR>"; 
        foreach ($array[$start] as $row)
        {
                $_row[$start] = $row;     //$row[0] = ‘黄芭’   $row[1] = '中号';  $row[2]='儿童'               
                if ($start == $count - 1) //已经到最后一组了
                {
                        $_array[] = $_row; //直接加上去  //放入到$_array数组中
                } else {

                        my2($array, $count, $start + 1); //开始读取第二组属性 开始读取第三组属性
                }
        }
        return $_array;
}


$array = my($array);
foreach($array as $buf){
     var_dump($buf);
     echo "<BR><BR><BR>";

}
//print_r(my($array));
?>

  

原文地址:https://www.cnblogs.com/xiangxiaodong/p/2769902.html