2017-02-23 4 views
1

Ich habe ein dreidimensionales Array. Ich habe versucht, durch Schlüsselwörter für ein Unternehmen zu suchenSuche im dreidimensionalen Array

$Platinum = array 
     (
     array(
      "Name"  => "Art of Life", 
      "description" => "a description", 
      "keyword"  => array(
       "designing", 
       "interior design websites", 
      ), 
     ), 
     array(
      "Name"  => "Golden Art", 
      "description" => "a description", 
      "keyword"  => array(
       "designing", 
       "design company", 
       "design services", 
      ), 
     ), 
    ); 

ich diesen print_r(array_search("designing", array_column($Platinum[0], 'keyword'))); versucht, aber hat nicht funktioniert.
Wie nach Schlüsselwörtern suchen und den Namen des Unternehmens erhalten, wenn ich das Schlüsselwort gefunden habe?

Antwort

1

Verwenden Sie diesen Code,

$arr = array_column($Platinum, 'keyword'); 
$current_key = ''; 
foreach($arr as $k => $v){ 
    if(in_array('designing', $v)){ 
     $current_key = $k; 
     break; 
    }  
} 
$company_name = $Platinum[$current_key]['Name']; 
echo $company_name;die; 

es versuchen, wird diese Arbeit.

+0

Dank. Es funktioniert für mich –

+0

Sie sind herzlich willkommen! – rahulsm

0

Diese Funktion würde die Arbeit für Sie tun:

<?php 
function find_company_by_keyword($companies, $search_keyword) 
{ 
    $search_keyword = trim(strtolower($search_keyword)); 

    $results = []; 

    foreach ($companies as $company) { 
     $keyword_found = false; 

     foreach ($companies['keyword'] as $keyword) { 
      if ($keyword_found) continue; 

      $keyword = trim(strtolower($keyword)); 
      if ($keyword == $search_keyword) $results[] = $company; 
     } 
    } 
    return $results 
} 

Verbrauch:

<?php 
$results = find_company_by_keyword($Platinum,'designing');