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

时间:2011-06-14 19:14:12

标签: php arrays search multidimensional-array

我正在将用户用户输入用于表单,然后它将搜索此数组以查看它们的输入是否在数组中。因此,如果用户搜索“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"
                )
                );

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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') [原文如此]