使用其他数组从2d数组获得结果

时间:2016-02-05 12:22:39

标签: php arrays

我有一个数组

<div id="menu">
        <div class="fb-like" data-href="https://www.facebook.com/%D7%9E%D7%A4%D7%A2%D7%99%D7%9C%D7%AA-%D7%99%D7%9E%D7%99-%D7%94%D7%95%D7%9C%D7%93%D7%AA-1529931987323926/?pnref=story" data-width="10px" data-layout="button_count" data-action="like" data-show-faces="true" data-share="true"></div>

        <ul>
            <li><h2><a href="/HtmlPage1.html">ראשי</a></h2></li>
            <li><h2><a href="/אודות.html">אודות</a></h2></li>
            <li><h2><a href="צור קשר.html">צור קשר</a></h2></li>

        </ul>

    </div>

和其他一个

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

问题是,如何使用第一个数组中的值从第二个数组中获取结果。 输出应该看起来像这样

Array
(
    [0] => Array
        (
            [v1] => aa
            [v2] => ss
        )
.
.
.
.

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

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

我正在尝试像array_intersect和array_values这样的功能,但它没有用。

5 个答案:

答案 0 :(得分:2)

您可以使用array_intersect_keyarray_flip

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

答案 1 :(得分:1)

这将迭代第一个数组并从第二个数组中获取值。

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

答案 2 :(得分:0)

你可以这样做:

$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
//)

答案 3 :(得分:0)

尝试做这样的事情

$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] 
        }
    }

答案 4 :(得分:0)

这是已执行的代码。

<?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);

 ?>