Looking for someone with PHP experience (foreach)

Chat about anything not covered in these forums, but keep it civil!

Post » Thu Aug 01, 2013 2:13 pm

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.

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.Bl4ckSh33p2013-08-01 19:07:00
B
53
S
16
G
6
Posts: 718
Reputation: 9,150

Post » Sat Aug 03, 2013 12:19 pm

Hi. I have a solution for my problem now. :)

[CODE]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;
        }
}[/CODE]
B
53
S
16
G
6
Posts: 718
Reputation: 9,150


Return to Open Topic

Who is online

Users browsing this forum: abbyswaggangalda, brucebrown, panthira and 1 guest