pillmill
asked on
Get array elements like print_r?
How can I iterate over the elements of an array in the same way as the print_r output?
For example, print_r displays the array as:
Array ( [0] => Array ( ) [1] => Array ( [0] => A ) [2] => Array ( [0] => B ) [3] => Array ( [0] => B [1] => A ) [4] => Array ( [0] => C ) [5] => Array ( [0] => C [1] => A ) [6] => Array ( [0] => C [1] => B ) [7] => Array ( [0] => C [1] => B [2] => A ) )
If I use foreach to access each element, there are error messages for each array element for which there are no values:
foreach ($array as $i1 => $n1) {
foreach ($array as $i2 => $n2){
echo $array[$i1][$i2];
}
}
For example, print_r displays the array as:
Array ( [0] => Array ( ) [1] => Array ( [0] => A ) [2] => Array ( [0] => B ) [3] => Array ( [0] => B [1] => A ) [4] => Array ( [0] => C ) [5] => Array ( [0] => C [1] => A ) [6] => Array ( [0] => C [1] => B ) [7] => Array ( [0] => C [1] => B [2] => A ) )
If I use foreach to access each element, there are error messages for each array element for which there are no values:
foreach ($array as $i1 => $n1) {
foreach ($array as $i2 => $n2){
echo $array[$i1][$i2];
}
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
You can use isset() or empty() to test for the existence and content of variables before you use them in other PHP statements. A good programming practice always!
But having said that, this sequence of code looks confused.
foreach ($array as $i1 => $n1) {
foreach ($array as $i2 => $n2){
echo $array[$i1][$i2];
}
}
I have never seen a design pattern that nested two iterators inside one another - when accessing the same array or object. If you want to post a code snippet that includes a piece of sample data, I can show you the ways to use the foreach() statements. I would be glad to use the example you posted above, but it's too much of a nuisance to copy the print_r output and turn it back into an array, so just give us the starting data and I'll show you how print_r would do it.
best, ~Ray
But having said that, this sequence of code looks confused.
foreach ($array as $i1 => $n1) {
foreach ($array as $i2 => $n2){
echo $array[$i1][$i2];
}
}
I have never seen a design pattern that nested two iterators inside one another - when accessing the same array or object. If you want to post a code snippet that includes a piece of sample data, I can show you the ways to use the foreach() statements. I would be glad to use the example you posted above, but it's too much of a nuisance to copy the print_r output and turn it back into an array, so just give us the starting data and I'll show you how print_r would do it.
best, ~Ray
What are you trying to do exacly?
Compare each data value with something?
Or you are trying just to format as print_r?
Compare each data value with something?
Or you are trying just to format as print_r?
http://www.learnphp-tutorial.com/Arrays.cfm
at the bottom of the page, there is a two-dimensional array example
Hope it helps
Cheers