check if value exists in the array, if it does not exist save the data that does not exist in another array

Asked

Viewed 835 times

0

$array      = array(
            'b_E_'.$cnpjClie.'_'.date('Ymd').'_A.'.$ext,
            'b_M_'.$cnpjClie.'_'.date('Ymd').'_A.'.$ext,
            'b_M_'.$cnpjClie.'_'.date('Ymd').'_B.'.$ext,
            'b_M_'.$cnpjClie.'_'.date('Ymd').'_C.'.$ext,
            'b_G_'.$cnpjClie.'_'.date('Ymd').'_A.'.$ext,
            'b_G_'.$cnpjClie.'_'.date('Ymd').'_B.'.$ext,
            'b_G_'.$cnpjClie.'_'.date('Ymd').'_C.'.$ext,
            'b_M_'.$cnpjClie.'_'.date('Ymd').'.'.$ext,
            'b_M_'.$cnpjClie.'_'.date('Ymd').'.'.$ext,
            'b_M_'.$cnpjClie.'_'.date('Ymd').'.'.$ext,
            'b_G_'.$cnpjClie.'_'.date('Ymd').'.'.$ext,
            'b_G_'.$cnpjClie.'_'.date('Ymd').'.'.$ext,
            'b_G_'.$cnpjClie.'_'.date('Ymd').'.'.$ext
        );
        $str = implode("<br>", $array);

        if (in_array($NewArquivo, $array)):
            echo "<b>CNPJ: </b>" . $cnpjClie . "<br>";
            echo "<b>REALIZOU: </b> BACKUP HOJE<br>";
            echo "<b>Arquivo: </b>". $arquivo . "<hr><br>";
        else:
            echo "<b>CNPJ: </b>" . $cnpjClie . "<br>";
            echo "<b>PENDENTE: </b> de backup!<hr><br>";
            //$arrayC   = array($cnpjClie); tentado assim, corrigido abaixo
            $arrayC[] = $cnpjClie;
            $strC     = implode("\n", $arrayC);
        endif;  

I would like to know the data that is not in the array, and store in another array in the case $arrayC[], in order to be able to finally notify who did not backup the day, in the test I tried there, it repeats the same data in ELSE.

2 answers

0

You must use a repeat loop on the $array variable, there inside the repeat loop you do your if to check the in_array(). So when it drops into Else you add the content not found in the $arrayC variable[]

0

// Duas estruturas de dados unidimensional
$array_a = array('A','B','C','D','E','F');
$array_b = array('Z','C','X','F','D');

// Estrutura de dados com a intersecção dos arrays acima.
$array_intersect = array_intersect($array_a,$array_b);
var_dump(array_intersect($array_a,$array_b));

// Mescla dos dois arrays originais, ou seja todos os valores em uma estrutura da dados.
$array_ab = array_merge($array_a, $array_b);
var_dump($array_ab);
// Removendo valores duplicados.
$array_ab = array_unique($array_ab);
var_dump($array_ab);

// Verificar se cada item está na interseção
foreach($array_intersect as $key => $value) {
    if(in_array($value, $array_ab)){
        // Se estiver remove pois só queremos os itens novos, ou seja, que não existe nos dois arrays.
        unset($array_ab[$key]);
    }
}

var_dump($array_ab);

Note: Beware of "in_array", if true, see documentation (http://php.net/manual/en/function.in-array.php)

Be careful as the above example only works for two one-dimensional data structures...

**And beware of keys, can give difference in unset removal().

I hope I’ve been helping =/

Browser other questions tagged

You are not signed in. Login or sign up in order to post.