Search code examples
phparrayssearch-form

Is it possible to create search form for associative Arrays?


So, here I have several arrays;

$ljubimci_arr[]=array("naziv"=>"Stef","vrsta" => "Pas", "spol" => "M", "pasmina" => "vucjak","cijepljen" => "DA","chip" =>"HRV20140115001" );
$ljubimci_arr[]=array("naziv"=>"Mia","vrsta" => "Macka", "spol" => "Z", "pasmina" => "tazmanijska zvijer","cijepljen" => "DA", "chip" =>"HRV20140117002" );
$ljubimci_arr[]=array("naziv"=>"Jura","vrsta" => "Macka", "spol" => "M", "pasmina" => "ruska plava","cijepljen" => "NE", "chip" =>"HRV20140216003" );
$ljubimci_arr[]=array("naziv"=>"Thepas","vrsta" => "Pas", "spol" => "M", "pasmina" => "koker","cijepljen" => "DA", "chip" =>"HRV20140823004" );
$ljubimci_arr[]=array("naziv"=>"Rubick","vrsta" => "Macka", "spol" => "Z", "pasmina" => "skotski fold","cijepljen" => "DA", "chip" =>"HRV20140920005" );
$ljubimci_arr[]=array("naziv"=>"Svinjica","vrsta" => "Pas", "spol" => "Z", "pasmina" => "samojed","cijepljen" => "NE", "chip" =>"HRV20141007006" );
$ljubimci_arr[]=array("naziv"=>"Aron","vrsta" => "Pas", "spol" => "M", "pasmina" => "mastif","cijepljen" => "DA", "chip" =>"HRV20150102007" );

Is it possible to create search form using the form below for array above.I just want to get simple url value based on values that I input in search form. Let's say I want to search values for key "naziv" and if I write "Rubick"(naziv=>"Rubick") then I ll get value Rubick in url.

<form method="GET">
  Search Google:
  <input type="search" name="ljubimci_arr">
  <input type="submit"/>
</form>

I tried using this example as working material but without any luck. Using Form Field to Search Php Associative Array

if(isset($_GET['year']))
{
    if(array_key_exists($_GET['year'], $ages))
    {
         echo $ages[$_GET['year']];
    }
    else
    {
        echo 'Cannot find data';
    }
}    
?>

<form method="GET">
    <input type="text" name="year" value="1984" />
    <input type="submit" />
</form> 

Thank you!


Solution

  • This method loops through each item of your array and compares the input from your form to the values of the key naziv. If nothing is found, it prints out an error message.

    <form method="POST" action="">
        Search Google:
        <input type="search" name="ljubimci_arr">
        <input type="submit"/>
    </form>
    
    <?php
    
    $ljubimci_arr[]=array("naziv"=>"Stef","vrsta" => "Pas", "spol" => "M", "pasmina" => "vucjak","cijepljen" => "DA","chip" =>"HRV20140115001" );
    $ljubimci_arr[]=array("naziv"=>"Mia","vrsta" => "Macka", "spol" => "Z", "pasmina" => "tazmanijska zvijer","cijepljen" => "DA", "chip" =>"HRV20140117002" );
    $ljubimci_arr[]=array("naziv"=>"Jura","vrsta" => "Macka", "spol" => "M", "pasmina" => "ruska plava","cijepljen" => "NE", "chip" =>"HRV20140216003" );
    $ljubimci_arr[]=array("naziv"=>"Thepas","vrsta" => "Pas", "spol" => "M", "pasmina" => "koker","cijepljen" => "DA", "chip" =>"HRV20140823004" );
    $ljubimci_arr[]=array("naziv"=>"Rubick","vrsta" => "Macka", "spol" => "Z", "pasmina" => "skotski fold","cijepljen" => "DA", "chip" =>"HRV20140920005" );
    $ljubimci_arr[]=array("naziv"=>"Svinjica","vrsta" => "Pas", "spol" => "Z", "pasmina" => "samojed","cijepljen" => "NE", "chip" =>"HRV20141007006" );
    $ljubimci_arr[]=array("naziv"=>"Aron","vrsta" => "Pas", "spol" => "M", "pasmina" => "mastif","cijepljen" => "DA", "chip" =>"HRV20150102007" );
    
    if(isset($_POST['ljubimci_arr']))
    {
        $found = 0;
        foreach($ljubimci_arr as $item) {
            if($item['naziv'] == $_POST['ljubimci_arr'])
            {
                print_r($item);
                $found = 1;
            }
        }
        if(!$found)
            echo "Cannot find data.<br>";
    }
    
    ?>