2011-06-14 55 views
0

我正在使用用户用户输入到表单中,然后它将搜索这个数组,以查看它们的输入是否在数组内。所以,如果用户搜索'45',我需要在数组中找到相应的值。PHP:查找多维数组中的元素数并存储该值

所以如果$ myArray ['Aames'] [o]是45我还需要找到$ myArray ['Names'] [0]等等。所以我需要一种方法来查找'45'的元素编号并存储该编号,然后打印出相应的信息。

$myArray = array 
       ( 
       "Names"=>array 
       (
       "John", 
       "Jane", 
       "Rick" 
       ), 
       "Speciality"=>array 
       (
       "Buisness", 
       "sales", 
       "marketing" 
       ), 
       "Aames"=>array 
       (
       "45", 
       "Some guy", 
       "Another guy" 
       ) 
       ); 
+0

而当他们搜索 “约翰”,你也想回报 “的经营”, “45”? – sjobe 2011-06-14 19:21:01

+0

循环访问'$ myArray',为每个'$ element'检查'in_array'并在发现时做些事情。你写了什么代码? – Matthew 2011-06-14 19:22:06

回答

1
$search = '45'; 

$key = array_search($search, $myArray['Aames']); 

$name = $myArray['Names'][$key]; 

$speciality = $myArray['Speciality'][$key]; 

echo $name; //Outputs John 

echo $speciality; //Outputs Business 
0

如果您计划更广泛地应用它你可以概括这个有点用的功能。

function searchArray($query, $keyArray, $valuesArray){ 

    $key = array_search($query, $keyArray); 

    $returnArray = array(); 
    foreach($valuesArray as $arrKey=>$arrVal){ 
     $returnArray[$arrKey] = $arrVal[$key]; 
    } 

    return $returnArray; 
} 

$query是含有你正在寻找在$keyArray$valuesArray是含有与潜在查询字符串相关联的值数组的数组的值的字符串。

例子:$userAttributes = searchArray('45', $myArray['Aames'], array('Names'=>$myArray['Names'], 'Speciality'=>$myArray['Speciality']));

$userAttributes那么应该是array('Names'=>'John', 'Speciality'=>'Buisness') [原文]