On 11/22/06, Christopher Jordan <[EMAIL PROTECTED]> wrote:


Er, you are aware that you can reference strings as arrays in PHP, or if
needed convert a string to a real array in one line, right?

for ($i=0; $i < strlen($string); ++$i) {
 print $string[$i] . "\n";
}
foreach (explode($string) as $char) {
 print $char . "\n";
}

   How do you tell PHP what the list delimiter is?


Actually Christopher mixed up the argument order for explode()[1]. It's:

explode("delimiter", $string);

Actually, explode isn't even the right function to use for what he's
demonstrating. The str_split function[2] is actually what you want.

foreach(str_split($string) as $char) {
   print $char . "\n";
}


[1] http://us3.php.net/manual/en/function.explode.php
[2] http://us3.php.net/manual/en/function.str-split.php

<cfset str = "a,b,c,d|d,e,f,g*h,i,j,k|l,m,n,o">

I can then turn around and get the first element based on the asterisk
being the delimiter and then treat the result (a,b,c,d|d,e,f,g) as a new
list who's delimiter is the pipe and then end up with last list whose
delimiter is the comma.

<cfloop index="i" from ="1" to="#ListLen(str, '*')#">
    <cfset str2 = ListGetAt(str, i, "*")>
    <cfloop index="n" from="1" to="#ListLen(str2, '|')#">
          <cfset str3 = ListGetAt(str2, n, "*")>
          <cfloop index="j" from="1" to="#ListLen(str3)#">
                <!--- do some stuff with the innermost elements of the
list --->
          </cfloop>
    </cfloop>
</cfloop>

Can you do that in php?


$str = "a,b,c,d|d,e,f,g*h,i,j,k|l,m,n,o";

foreach(explode("*", $str) as $half) {
   foreach(explode("|", $half) as $quarter) {
       foreach(explode(",", $quarter) as $letter) {
           // Do something unbelivably cool
       }
   }
}
_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/

Reply via email to