PHP:在多维数组中查找元素编号并存储该值


PHP: Finding Element Number in Multidimensional Array and Storing that value

我使用用户输入到表单中,然后它将搜索该数组,看看他们的输入是否在数组中。因此,如果用户搜索"45",我需要在数组中找到相应的值。

因此,如果$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"
                )
                );
$search = '45';
$key = array_search($search, $myArray['Aames']);
$name = $myArray['Names'][$key];
$speciality = $myArray['Speciality'][$key];
echo $name; //Outputs John
echo $speciality; //Outputs Business

如果您计划更普遍地应用它,您可以用一个函数对此进行一点概括。

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')[sic]