Можно ли создать форму поиска для ассоциативных массивов?

Итак, здесь у меня есть несколько массивов;

$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" );

Можно ли создать форму поиска, используя форму ниже для массива выше. Я просто хочу получить простое значение URL, основанное на значениях, которые я ввожу в форму поиска. Допустим, я хочу найти значения для ключа "naziv", и если я напишу "Rubick"(naziv=>"Rubick"), тогда я получу значение Rubick в URL.

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

Я пытался использовать этот пример в качестве рабочего материала, но безуспешно. Использование поля формы для поиска Php ассоциативного массива

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> 

Спасибо!

1 ответ

Решение

Этот метод просматривает каждый элемент вашего массива и сравнивает входные данные из вашей формы со значениями ключа. naziv, Если ничего не найдено, выводится сообщение об ошибке.

<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>";
}

?>
Другие вопросы по тегам