2017-09-22 1 views
2

말해주는 것보다 나은 결과입니다.다른 배열의 값으로 키가있는 배열 값에서 추출하십시오.

$first = array(
    3=>"Banana", 
    4=>"Apple", 
    6=>"Lemon", 
    7=>"Pineapple", 
    8=>"Peach" 
); 

$second = array(4,7,8); 

(하시기 바랍니다 참고 : 첫 번째는 연관 배열, 그것은 구멍을 가질 수있다) 을 결과는

$result = array(
    "Apple", 
    "Pineapple", 
    "Peach" 
); 

어떤 현명한 생각해야 하는가? 고마워요

+0

현명한 생각은 PHP [array functions] (http://php.net/manual/en/ref.array.php)의 문서를 읽은 다음 일반 'foreach'를 사용하여 작업을 수행하는 것입니다. 그리고 물론,이 모든 질문은 [so]에 대한 질문을 게시하고 다른 사람들이 당신의 문제를 해결하기를 기다리는 것보다 시간이 덜 듭니다. – axiac

답변

3

. 이 단일 라이너로 충분합니다.

1array_values

배열의 값을 반환한다.

array_flip 2keysvalues 위에 배열 플립 것이다.

array_intersect_key은 두 개의 입력 배열의 교차하는 키를 기준으로 배열을 반환합니다.

Try this code snippet here

print_r(
    array_values(
     array_intersect_key(
        $first, array_flip($second)))); 
0

그냥 간단한 foreach 루프가 그것을 할 것입니다. 그리고는 isset()은 인덱스를 읽을하기 전에 첫 번째 배열에 있는지 확인 : 우리가 array_intersect_key, array_fliparray_values를 사용하는

다음
$first = array(
    3=>"Banana", 
    4=>"Apple", 
    6=>"Lemon", 
    7=>"Pineapple", 
    8=>"Peach" 
); 
$second = array(4,7,8); 
$result = array(); 

foreach($second as $i) 
{ 
    if (isset($first[$i])) $result[] = $first[$i]; 
} 

var_dump($result); 
0

안녕하세요이

$ 첫째 = 배열 ​​(

3=>"Banana", 
4=>"Apple", 
6=>"Lemon", 
7=>"Pineapple", 
8=>"Peach" 

)처럼 사용할 수 있습니다;

$ 초 = 배열 ​​(4,7,8);

의 foreach ($ 최초로 $ 키 => $의 발) {

경우 (array_search ($ 키 $ 초) === 거짓) {

해제 ($ 제 [$ 키 ]));

}}

에서 print_r ($ 제); 출구;

관련 문제