Part 1, solving the array via the array merge instead of array_push
$results_countries = $this->model_search_smartsearch->buildCountries();
$results_provinces = $this->model_search_smartsearch->buildProvinces();
$results_cities = $this->model_search_smartsearch->buildCities();
$smartsearcharray = array();
$smartsearcharray = array_merge($results_countries, $results_provinces, $results_cities );
Part 2, searching the array value, and if it matches store the information in a smaller /new array
$res_arr = array();
foreach($smartsearcharray as $item)
{
if(stripos($item['name'], $search_word) !== false) {
$res_arr[] = array(
'name' => $item['name'],
'action' => $item['action'],
'value' => $item['value']
);
}
}
print_r($res_arr);