Ik ben er al heel lang mee bezig.. nu moet het alleen nog makkelijker zodat het dynamisch uitgebreid kan worden, alleen lukt mij dat niet.
<?php
$array = array();
$n = 0;
foreach($num_array as $nummer)
{

	foreach($smsNummers[$nummer] as $char)
	{
		if($n == 0)
			$array[] = array($char);
		if($n == 1)
		{
			for($i=0; $i<count($smsNummers[$num_array[0]]); $i++)
			{
				$array[$i][1][] = array($char);
			}
		}
		if($n == 2)
		{
			for($i=0; $i<count($smsNummers[$num_array[0]]); $i++)
			{
				for($j=0; $j<count($smsNummers[$num_array[1]]); $j++)
				{
					$array[$i][1][$j][1][] = array($char);
				}
			}
		}
		if($n == 3)
		{
			for($i=0; $i<count($smsNummers[$num_array[0]]); $i++)
			{
				for($j=0; $j<count($smsNummers[$num_array[1]]); $j++)
				{
					for($k=0; $k<count($smsNummers[$num_array[2]]); $k++)
					{
						$array[$i][1][$j][1][$k][1][] = array($char);
					}
				}
			}
		}
	}
	$n++;
}
?>


Wie o wie..
Mag ik vragen wat het precies doet en wat het oplevert.
Zou je een uitleg van je code willen geven en ook een uitleg van je vraag...
Het is simpelweg een "foutieve" omslachtige manier om een multidimensionale array uit te lezen en er weer 1 op te bouwen.

Lijkt me handiger als je een preg_match erover heen haalt
Ik lees niks uit hoor? Het doel was om telefoonnummers om te zetten naar woorden. Dit is dus gelukt op mijn manier, maar het kan nu maar tot 8 cijfers (zonder 06) en het uitbreiden met $n moet dynamisch gebeuren dus.. Alles wat dan extra gebeurd moet automatisch vind ik.

Hier de hele code:
[code]<?php
$smsNummers = array(
array('0'),
array('1'),
array('a', 'b', 'c'),
array('d', 'e', 'f'),
array('g', 'h', 'i'),
array('j', 'k', 'l'),
array('m', 'n', 'o'),
array('p', 'q', 'r', 's'),
array('t', 'u', 'v'),
array('w', 'x', 'y', 'z')
);

if(!isset($_GET['nr']))
$input = "46744524";
else
$input = $_GET['nr'];

if(!ctype_digit($input)) die();


//elk nummer apart
$num_array = str_split($input);
$aantal_num = count($num_array);

//echo count($smsNummers[$num_array[0]]);

$array = array();
$n = 0;
foreach($num_array as $nummer)
{

foreach($smsNummers[$nummer] as $char)
{
if($n == 0)
echo $char."<br />";
$array[] = array($char);
if($n == 1)
{
for($i=0; $i<count($smsNummers[$num_array[0]]); $i++)
{
echo $array[$i][0].$char."<br />";
$array[$i][1][] = array($char);
}
}
if($n == 2)
{
for($i=0; $i<count($smsNummers[$num_array[0]]); $i++)
{
for($j=0; $j<count($smsNummers[$num_array[1]]); $j++)
{
echo $array[$i][0].$array[$i][1][$j][0].$char."<br />";
$array[$i][1][$j][1][] = array($char);
}
}
}
if($n == 3)
{
for($i=0; $i<count($smsNummers[$num_array[0]]); $i++)
{
for($j=0; $j<count($smsNummers[$num_array[1]]); $j++)
{
for($k=0; $k<count($smsNummers[$num_array[2]]); $k++)
{
echo $array[$i][0].$array[$i][1][$j][0].$array[$i][1][$j][1][$k][0].$char."<br />";
$array[$i][1][$j][1][$k][1][] = array($char);
}
}
}
}
if($n == 4)
{
for($i=0; $i<count($smsNummers[$num_array[0]]); $i++)
{
for($j=0; $j<count($smsNummers[$num_array[1]]); $j++)
{
for($k=0; $k<count($smsNummers[$num_array[2]]); $k++)
{
for($l=0; $l<count($smsNummers[$num_array[3]]); $l++)
{
echo $array[$i][0].$array[$i][1][$j][0].$array[$i][1][$j][1][$k][0].$array[$i][1][$j][1][$k][1][$l][0].$char."<br />";
$array[$i][1][$j][1][$k][1][$l][1][] = array($char);
}
}
}
}
}
if($n == 5)
{
for($i=0; $i<count($smsNummers[$num_array[0]]); $i++)
{
for($j=0; $j<count($smsNummers[$num_array[1]]); $j++)
{
for($k=0; $k<count($smsNummers[$num_array[2]]); $k++)
{
for($l=0; $l<count($smsNummers[$num_array[3]]); $l++)
{
for($m=0; $m<count($smsNummers[$num_array[4]]); $m++)
{
echo $array[$i][0].$array[$i][1][$j][0].$array[$i][1][$j][1][$k][0].$array[$i][1][$j][1][$k][1][$l][0].$array[$i][1][$j][1][$k][1][$l][1][$m][0].$char."<br />";
$array[$i][1][$j][1][$k][1][$l][1][$m][1][] = array($char);
}
}
}
}
}
}
if($n == 6)
{
for($i=0; $i<count($smsNummers[$num_array[0]]); $i++)
{
for($j=0; $j<count($smsNummers[$num_array[1]]); $j++)
{
for($k=0; $k<count($smsNummers[$num_array[2]]); $k++)
{
for($l=0; $l<count($smsNummers[$num_array[3]]); $l++)
{
for($m=0; $m<count($smsNummers[$num_array[4]]); $m++)
{
for($o=0; $o<count($smsNummers[$num_array[5]]); $o++)
{
echo $array[$i][0].$array[$i][1][$j][0].$array[$i][1][$j][1][$k][0].$array[$i][1][$j][1][$k][1][$l][0].$array[$i][1][$j][1][$k][1][$l][1][$m][0].$array[$i][1][$j][1][$k][1][$l][1][$m][1][$o][0].$char."<br />";
$array[$i][1][$j][1][$k][1][$l][1][$m][1][$o][1][] = array($char);
}
}
}
}
}
}
}
if($n == 7)
{
for($i=0; $i<count($smsNummers[$num_array[0]]); $i++)
{
for($j=0; $j<count($smsNummers[$num_array[1]]); $j++)
{
for($k=0; $k<count($smsNummers[$num_array[2]]); $k++)
{
for($l=0; $l<count($smsNummers[$num_array[3]]); $l++)
{
for($m=0; $m<count($smsNummers[$num_array[4]]); $m++)
{
for($o=0; $o<count($smsNummers[$num_array[5]]); $o++)
{
for($p=0; $p<count($smsNummers[$num_array[6]]); $p++)
{
echo $array[$i][0].$array[$i][1][$j][0].$array[$i][1][$j][1][$k][0].$array[$i][1][$j][1][$k][1][$l][0].$array[$i][1][$j][1][$k][1][$l][1][$m][0].$array[$i][1][$j][1][$k][1][$l][1][$m][1][$o][0].$array[$i][1][$j][1][$k][1][$l][1][$m][1][$o][1][$p][0].$char."<br />";
$array[$i][1][$j][1][$k][1][$l][1][$m][1][$o][1][$p][1][] = array($char);
}
}
}
}
}
}
}
}
}
echo "<br />";
$n++;
}
?>[code]
Voorbeeld: http://dragy.nl/numbertoword.php
Dan zal je je moeten verdiepen in recursie
Ik zal eens kijken... denk wel dat dit een vrij lastige is.. Heb wel eens vaker recursieve functies gemaakt

[size=xsmall]Toevoeging op 12/09/2010 00:09:55:[/size]

Raadseltje is opgelost door een vriend die wat slimmer blijkt te zijn:
<?php
$smsNummers = array(
array('0'=>null),
array('1'=>null),
array('a'=>null, 'b'=>null, 'c'=>null),
array('d'=>null, 'e'=>null, 'f'=>null),
array('g'=>null, 'h'=>null, 'i'=>null),
array('j'=>null, 'k'=>null, 'l'=>null),
array('m'=>null, 'n'=>null, 'o'=>null),
array('p'=>null, 'q'=>null, 'r'=>null, 's'=>null),
array('t'=>null, 'u'=>null, 'v'=>null),
array('w'=>null, 'x'=>null, 'y'=>null, 'z'=>null)
);
$input = 46744524;
$num_array = str_split($input);
$aantal_num = count($num_array)-1;

$previous = '';
$results = array();
for($i = $aantal_num; $i >= 0; $i--)
{
    $new = array();
    $current = $smsNummers[$num_array[$i]];
    if(empty($results))
        $new = array_keys($current);
    else
        foreach(array_keys($current) as $prefix)
            foreach($results as $suffix)
                $new[] = $prefix.$suffix;
    $results = $new;
    foreach($current as $char => $row)
        $current[$char] = $previous;

    $previous = $current;

}

print_r($results); // alles als string
print_r($previous); //multi-dimensional array
?> 

Reageren