Looking for someone with PHP experience (foreach)

  • Hi! I only know a few basic things about PHP and tried to get this to work for hours but it just does not work.

    So I want to ask if someone here might be experienced with PHP. If you know it this should only take a minute or two for you to figure out. :)

    I have a nested array. Its just a list like this

    array[0]["Name"]="Alex";

    array[0]["Serial"]="12345";

    array[0]["NIC"]="1dA21n";

    array[1]["Name"]="Roland";

    array[1]["Serial"]="1337";

    array[1]["NIC"]="uR0ck";

    and so on...

    and I want to compare the entered value submitted with HTTPPost to all array entries with a foreach loop. But I can't figure out how to write this loop properly. <img src="smileys/smiley18.gif" border="0" align="middle" />

    The original code:

    <?

    // Check for post data

    if ($_POST)

    {

        // Initialize user array in format "Username"=>"Serial"

        $user_array = array(

            "John Doe"=>"abc-def-ghi",

            "Jane Smith"=>"123-456-789"

        );

        // Get info from post variables

        $user = $_POST['user'];

        $serial = $_POST['serial'];

        $installed = $_POST['installed'];

        // Step through the user array

        foreach($user_array as $username=>$serialnumber)

        {

            // Compare current item to the posted information

            if(($user==$username) AND ($serial==$serialnumber))

            {

                // The current user matched, return info and exit

                echo md5($user).md5($serial).'::'.$installed;

                exit;

            }

        }

        // If this script makes it this far, nothing matched, return error code

        echo -1;

    }

    else

    {

        // no post data was sent, return error code

        echo -1;

    }

    ?>

    I changed the array and added another POST variable.

    I tried several things from the php manual and php tutorial sites like:

    foreach ($user_array as $type => $properties) {

    // $properties = $GodArray[$type]

    foreach ($properties as $property => $value) {

        // $value = $GodArray[$type][$property]

        //echo $property, "=", $value, "<br />";

                 if(($user==$username) AND ($serial==$serialnumber) AND ($nic==$nicid)

            {

                 //The current user matched, return info and exit

                echo md5($user).md5($serial).md5($nic).'::'.$installed;

                exit;

            }

         

    }

    }

    or:

    /*

    foreach ($user_array as $nr => $inhalt)

    {

        $username[$nr] = ( $inhalt['User'] );

        $serialnumber[$nr]   = ( $inhalt['Serial'] );

        $nicid[$nr] = ( $inhalt['NIC'] );

         echo $username.$serialnumber.$nicid;

    }

    */

         

    or:

        // Step through the user array

        //foreach($user_array as ($username, $serialnumber, $nicid))

         

         //foreach ($user_array as $v1) {

        //foreach ($v1 as $v2) {

        //    if(($user==$username) AND ($serial==$serialnumber) AND ($nic==$nicid)

        //    {

                // The current user matched, return info and exit

        //        echo md5($user).md5($serial).md5($nic).'::'.$installed;

        //        exit;

        //    }   

        //}

    //}

        //{

            // Compare current item to the posted information

            //if(($user==$username) AND ($serial==$serialnumber) AND ($nic==$nicid)

            //{

                // The current user matched, return info and exit

            //    echo md5($user).md5($serial).md5($nic).'::'.$installed;

            //    exit;

            //}

        //}

    But it puts out everything in one line (all data from every array entry) or I get an syntax error with missing , ( or {.

    Does anyone know how to do this? Any help would be very much appreciated.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Hi. I have a solution for my problem now. :)

    foreach ($user_array as $nr => $inhalt) { 
            // Compare current item to the posted information 
            if($user == $inhalt["User"] AND $serial == $inhalt["Serial"]) { 
                // The current user matched, return info and exit 
                echo md5($user).md5($serial).'::'.$installed; 
                exit; 
            }  
    }
Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)