使用其他数组从 2D 数组中获取结果


Get results from 2d array using other array

>我有一个数组

Array
(
    [0] => 4
    [1] => 5
)

和其他一个

Array
(
    [0] => Array
        (
            [v1] => aa
            [v2] => ss
        )
.
.
.
.
    [4] => Array
        (
            [v1] => vv
            [v2] => dd
        )
    [5] => Array
        (
            [v1] => gg
            [v2] => rr
        )
)

问题是,如何使用第一个数组中的值从第二个数组中获取结果。输出应如下所示

[4] => Array
    (
        [v1] => vv
        [v2] => dd
    )
[5] => Array
    (
        [v1] => gg
        [v2] => rr
    )

我正在尝试一些功能,例如array_intersect和array_values但它不起作用。

您可以使用

array_intersect_keyarray_flip

$result = array_intersect_key($secondArray, array_flip($firstArray));

这将遍历第一个数组并从第二个数组中获取值。

$newarray=array();
foreach ($array1 as $v) {
    $newarray[$v] = $array2[$v];
}

尝试做这样的事情

$array_a;/* 
    Array
    (
        [0] => 4
        [1] => 5
    )*/
    $result = array() ;
    foreach ($array_a as $res){
        if ( array_key_exists($array_b[$res])  ){
            $result[] = $array_b[$res] 
        }
    }
你可以

这样做:

$output = array();
foreach( $first_array as $v ){
    $output[$v] = $second_array[$v];
}
//$output has
//[4] => Array
//(
//    [v1] => vv
//    [v2] => dd
//)
//[5] => Array
//(
//    [v1] => gg
//    [v2] => rr
//)

这是执行的代码。

<?php
 $array1 = array(3,5);
 echo '<pre>';
 print_r($array1);
 $array2 = array();
 $array2[0] = array('v1'=>'aa','v2'=>'ss');
 $array2[3] = array('v1'=>'vv','v2'=>'dd');
 $array2[4] = array('v1'=>'xx','v2'=>'yy');
 $array2[5] = array('v1'=>'gg','v2'=>'rr');
 print_r($array2);
 $array3 = array();
 for($i=0;$i<=count($array1)-1;$i++)
 {
    if (array_key_exists($array1[$i], $array2))
          $array3[$array1[$i]] = $array2[$array1[$i]];
 }  
 print_r($array3);
 ?>