Verificare elemente comune din 2 array

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
tycyssg
Mesaje:58

Verificare elemente comune din 2 array

Am incercat sa ma joc umpic cu functia str_split.
Am facut urmatorul exercitiu,este o alta posibilitate sa inlocuiesc linia aceasta?

Cod: Selectaţi tot

if($a_sp[$i] == $voc[$j]) ...
Practic ma intereseaza o solutie ca pe viitor poate am de comparat 2 array si sa afisez sau sa numar elementele comune,si ma gandesc ca daca array-ul de comparatie are vreo 10-15 elemente e de scris..,m-am uitat peste functiile de array dar am gasit ceva ce afiseaza doar diferenta.

Cod: Selectaţi tot

 if($a_sp[$i] == $voc[0] || $a_sp[$i] == $voc[1] || $a_sp[$i] == $voc[2] || $a_sp[$i] == $voc[3] || $a_sp[$i] == $voc[4]) 
Mai jos codul !

Cod: Selectaţi tot

<?php
$a = "Scaunul din fa?a ta era liber, dar am ezitat ?i m-am a?ezat pâna la 
urma, cu spatele la tine, oarecum.";
$a_sp =  str_split($a);
$a_nr = count($a_sp);
$rez = array();

$voc = array("a","e","i","o","u");

for($i=0;$i<$a_nr;$i++)
 { 
   if($a_sp[$i] == $voc[0] || $a_sp[$i] == $voc[1] || $a_sp[$i] == $voc[2] || $a_sp[$i] == $voc[3] || $a_sp[$i] == $voc[4]) 
     
      $rez[] = $a_sp[$i];
     
        $y = count($rez);
  }
   if($y == 1) {
   
  echo "Textul contine doar o singura vocala";
   }
     else 
      { 
        echo "Textul contine  ".$y." vocale";
         }
         
        ?>

MarPlo Mesaje:4343
Salut
Functia array_intersect($a2, $a1) returneaza elementele din $a2 care se gasesc si in $a1.
Cu functia in_array() poti verifica daca o anumita valoare se gaseste intr-un array (oricate elemente ar avea).
Exemplu:

Cod: Selectaţi tot

$a1 = array('a', 'e', 'i', 'o', 'u');
$a2 = array('b', 'e', 'd', 5, 'u', 'x', 'z');

// get common elements (key=>item of $a2 which is in $a1 too)
$a1_2 = array_intersect($a1, $a2);
var_export($a1_2);    // array (1 => 'e', 4 => 'u')

// check if an item of $a2 is in $a1
if(in_array($a2[4], $a1)) echo 'ok';
else echo 'no'; 

Subiecte similare