programing

키로 어레이 값 가져오기

minecode 2022. 10. 11. 21:32
반응형

키로 어레이 값 가져오기

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

예를 들어,다음과 같은 어레이가 있습니다.

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

key2key4의 값이 필요하기 때문에 다른 키가 있습니다.array("key2", "key4")이 어레이와 첫 번째 어레이를 입력으로 사용하여 값을 제공하는 함수가 필요합니다.그래서 반응이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의 키>값 매핑을 기반으로 합니다.$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

반응형