>我有一个数组
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_key
和array_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);
?>