<?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));
?>