2011-06-14 54 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') [原文]