2016-11-23 105 views
1

我的格式化1500個英語同義詞的數組如下:獲得從價值關鍵在multidimentionnal陣列

array(1521) { 
    [0]=> 
    array(2) { 
    [0]=> 
    string(5) "April" 
    [1]=> 
    string(3) "Apr" 
    } 
    [1]=> 
    array(7) { 
    [0]=> 
    string(5) "China" 
    [1]=> 
    string(26) "People's Republic of China" 
    [2]=> 
    string(14) "mainland China" 
    [3]=> 
    string(15) "Communist China" 
    [4]=> 
    string(9) "Red China" 
    [5]=> 
    string(3) "PRC" 
    [6]=> 
    string(6) "Cathay" 
    } 
    [2]=> 
    array(2) { 
    [0]=> 
    string(8) "December" 
    [1]=> 
    string(3) "Dec" 
    } 
    [3]=> 
    array(4) { 
    [0]=> 
    string(5) "Earth" 
    [1]=> 
    string(5) "earth" 
    [2]=> 
    string(5) "world" 
    [3]=> 
    string(5) "globe" 
    } 

    ... 

    [1519]=> 
    array(2) { 
    [0]=> 
    string(4) "year" 
    [1]=> 
    string(10) "solar year" 
    } 
    [1520]=> 
    array(2) { 
    [0]=> 
    string(4) "zero" 
    [1]=> 
    string(4) "null" 
    } 
} 

我試圖做一個函數,它接受一個單詞,並返回子陣列關鍵

例如:

$result = get_synonym_family($array, "world"); 
echo $result; //3 

我想結合一些我對現有的計算器問題找到了例子,但什麼也沒有裝修我的需求

+1

'foreach' +'array_search' –

+0

@u_mulder,我認爲'foreach' +'in_array' :) – Dekel

+0

@Dekel真的嗎? 'in_array'會返回'3'? –

回答

0

可以使用foreach功能走,在陣列中的所有的值,然後使用in_array功能檢查內部數組中存在的價值:

function get_synonym_family($array, $word) { 
    foreach($array as $key => $sub_array) { 
     if (in_array($word, $sub_array)) { 
      return $key; 
     } 
    } 

    return false; 
} 
+0

謝謝,它的作品就像一個魅力! – moustiluigi

0
<?php 
$array = [1 => ['apple','ball'.'cat'],2 => ['foo'.'bar']]; 

function get_synonym_family($id, $array) { 
    foreach ($array as $key => $val) { 
     foreach($val as $a) 
     { 
      if($a == $id) 
      { 
       return $key; 
      } 
     } 

    } 
    return null; 
} 

echo searchForId('apple',$array);