ProgramingTip

키로 배열 값 가져 오기

bestdevel 2021. 1. 5. 21:15
반응형

키로 배열 값 가져 오기


키 배열을 입력으로 사용하고 해당 값을 반환하는 내장 PHP 함수를 찾고 있습니다.

예를 들어 다음 배열이 있습니다.

$arr = array("key1"=>100, "key2"=>200, "key3"=>300, 'key4'=>400);

그리고이 키 필요 값이 필요 KEY2KEY4 I가 서로 그래서 array("key2", "key4")I는 입력 배열이 먼저 배열을하는 기능을 필요로하고 저 응답 값을 제공합니다. 그래서 응답은array(200, 400)


나는 당신이 array_intersect_key를 검증한다고 생각합니다 . 예 :

array_intersect_key(array('a' => 1, 'b' => 3, 'c' => 5), 
                    array_flip(array('a', 'c')));

반환 할 것 :

array('a' => 1, 'c' => 5);

좀 더 간단한 코드를 array('a' => '', 'c' => '')대신 사용할 수 있습니다 array_flip(...).

배열 키는 유지됩니다. 순차 배열이 필요한 경우 나중에 array_values를 사용합니다 .


대체 답변 :

$keys = array("key2", "key4");

return array_map(function($x) use ($arr) { return $arr[$x]; }, $keys);

foreach($input_arr as $key) {
    $output_arr[] = $mapping[$key];
}

그러면 $output_arr의 키 $input_arr-> 매핑을-based 값으로의 키 목록에 해당하는 값 갖게 됩니다 $mapping. 원하는 경우 함수로 래핑 할 수 있습니다.

function get_values_for_keys($mapping, $keys) {
    foreach($keys as $key) {
        $output_arr[] = $mapping[$key];
    }
    return $output_arr;
}

그런 다음 다음과 같이 호출합니다.

$a = array('a' => 1, 'b' => 2, 'c' => 3);
$values = get_values_for_keys($a, array('a', 'c'));
// $values is now array(1, 3)

참조 URL : https://stackoverflow.com/questions/4240129/get-array-values-by-keys

반응형