2016-11-23 102 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);