2017-02-23 8 views
1

私は三次元配列を持っています。私はこのprint_r(array_search("designing", array_column($Platinum[0], 'keyword'))); を試みたが、うまくいきませんでしたキーワード3次元配列で検索

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

で会社を検索しようとしていました。
キーワードを見つけたら、キーワードで検索して会社の名前を取得する方法は?

答えて

1

使用このコードは、

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

が、これは動作しますが、それを試してみます。

+0

感謝。それは私のために働く –

+0

あなたは大歓迎です! – rahulsm

0

この機能は、あなたのための仕事をするだろう:

<?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 
} 

使用法:

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