Home > Back-end >  How can I make this programme format the string properly? PHP - Nested For Loop
How can I make this programme format the string properly? PHP - Nested For Loop

Time:11-19

<?php
$list = ['a', 'b', 'c']; 
$count = [1, 3, 5];

function stringFormatter($c, $i) {
    return "Char is $c & Int is $i"; 
}

for ($i = 0; i < $list; $i  ) {
    for ($j = 0; $j < $count; $j  ) {
        $string = stringFormatter($list[$i], $count[$j]);
        print $string;
    }
}
?>

This is sample code that I have rewritten to demonstrate an issue I'm having with a program where I want to assign a formatted string, with the right combination of char and int, to be able to execute an SQL statement, using said string. Ideal scenario is getting a string that has the combination of both char and int at that position in their respective lists. E.g. "Char is a & Int is 1". This doesn't currently compile and when I plug it into "Online PHP Sandbox" I get the error message: "Internal Server Error [500]." Any advice on how I could get this to work, or even alternative suggestions are welcome! Thanks in advance!

CodePudding user response:

for ($i = 0; i < $list; $i ) { for ($j = 0; $j < $count; $j ) {

There are a few syntax errors here - watch out for a missing $ (look at the i inside the outer loop). You probably mean something like $i<count($list) using the built in count function. Similarly in the inner loop you are referencing the $count array with $j<$count - do you mean $j<count($count) or are you using the outer array as in index for the inner element i.e. $j < $count[$i].

On a more general note there are a collection of functions built into php to better handle passing of values into mysql (etc) - you should probably be looking at using those - search on "sanitising" with php and mysqli.

  • Related