浏览并比较两个数组

时间:2017-06-20 17:37:00

标签: php if-statement foreach zero

我需要比较一个来自查询的数组,一个基数组,其中我有可能有来自查询的数组的值,问题是如何通过并比较两个数组,以便我在值不匹配的地方得到零并给出数组的值?。

这是我的代码:

public function age_range_men()
{       
    $type = 'brands';
    $id_array= 75;
    $date_start= '2017-01-02 00:01:00';
    $date_end='2017-03-31 23:59:59';
    $datos = $this->statistics_model->range_age_men($type, $id_array, $date_start, $date_end);

    $result = array();

    foreach($datos as $dato) {
        $result[] = array((string)$dato->rango, (int)$dato->conexiones );
    }

     $base= array(array('12 a 17'), array('18 a 24'),array('25 a 34'), array('35 a 44'), array('45 a 54'),array('55 a 64'),array('mas de 65'));

    $res = array();

    foreach ($base as $base1) {
    // print_r($base1[0]);
    //       echo "<br>";
        foreach ($result as $result2){      
            if ($base1[0] == $result2[0]){
            }else{
                echo 0;
                break;
            }
        }
    }
}
  

[第一行是$ result,第二行是$ base] [1]

     

[1]:https://i.stack.imgur.com/LC5Ps.jpg

1 个答案:

答案 0 :(得分:0)

这是我的建议。为结果创建关联数组。使$base成为键列表而不是奇怪的多维数组。检查数组中的密钥。我有其他回音0如果它存在,我不知道你想要什么。

<?php

function age_range_men(){     

    $type = 'brands';
    $id_array= 75;
    $date_start= '2017-01-02 00:01:00';
    $date_end='2017-03-31 23:59:59';
    $datos = $this->statistics_model->range_age_men($type, $id_array, $date_start, $date_end);

    $result = array();


    foreach($datos as $dato) {
        $result[(string)$dato->rango] = (int)$dato->conexiones; // Note this is now using a key
    }

    //This is no longer a multi-dimensional array just the keys we need
    $base= array('12 a 17', '18 a 24','25 a 34', '35 a 44', '45 a 54','55 a 64','mas de 65');

    $res = array();

    foreach ($base as $key) {
        if(array_key_exists($key, $results)){
            //CODE???
        } else {
            echo 0;
        }
    }
}

age_range_men();