如何比较两个数组并找到第一个数组的第一个和最后一个值



我有两个数组,我必须找到第二个数组键与第一个数组值相互比较。

第一个数组是

    Array
(
    [0] => Array
        (
            [C10359] => Array
                (
                    [0] => 89785
                    [1] => 89786
                    [2] => 89857
                )
            [C10899] => Array
                (
                    [0] => 52924
                    [1] => 52945
                    [2] => 52975
                )
        )
    [1] => Array
        (
            [C10370] => Array
                (
                    [0] => 89785
                    [1] => 89786
                    [2] => 89857
                )
            [C10988] => Array
                (
                    [0] => 52924
                    [1] => 52945
                    [2] => 52975
                )
        )       
)

第二个数组是

    Array
(
    [0] => Array
        (
            [C10359] => 89860.5
            [C10899] => 53079
        )
    [1] => Array
        (
            [C10988] => 89860.5
            [C10111] => 53079
        )
)

我必须找到第二个数组键C10359到第一个数组。如果匹配,那么我想要这个数组的第一个和最后一个值

   [C10359] => Array
                (
                    [0] => 89785
                    [1] => 89786
                    [2] => 89857
                )

My trying code

 $vals = array();
    foreach ($first_array as $k => $v) {
        foreach($v as $key=>$val) {
            if (in_array($val, $second_array)) {
                $value = abs((($val - $second_array)/$second_array)*100);
                    if($value < 25){
                        return $vals ;
                    }
            }
        } 
    }

第一个和第二个数组是多维的(数组内数组)。

你可以试着把它们弄平,使搜索更容易

$first_array_flat = array();
foreach($first_array as $a){
    $first_array_flat += $a;
}
$second_array_flat = array();
foreach($second_array as $a){
    $second_array_flat += $a;
}

foreach($second_array_flat as $k=>$v){
    if(isset($first_array_flat[$k])){
        $a = $first_array_flat[$k];
        $first_v = reset($a);
        $last_v = end($a);
        #..... do your stuff here ...
    }
}

首先,您必须将其与array_intersect()进行比较。然后,您可以使用reset()和end()来查找数组的第一个和最后一个值,示例如下:

<?php
$arr = array(1,5,6,8,9);
$first_array = reset($arr);
$last_array = end($arr);
?>
输出:

1
9

相关内容

  • 没有找到相关文章