我有一个1500个英语同义词的数组,格式如下:
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
我尝试将我在已经存在的stackoverflow问题上找到的一些示例结合起来,但没有什么能满足我的需求
答案 0 :(得分: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;
}
答案 1 :(得分: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);