2013-08-26 16 views
6

Z funkcją Mam podane wielowymiarową tablicę tak:odnaleźć duplikaty wartości w tablicy wielowymiarowej

array(
    [0] => array(
     [0] => 7, 
     [1] => 18 
    ), 
    [1] => array(
     [0] => 12, 
     [1] => 7 
    ), 
    [2] => array(
     [0] => 12, 
     [1] => 7, 
     [2] => 13 
    ) 
) 

Muszę znaleźć zduplikowane wartości w 3 tablicach wewnątrz głównej tablicy. Na przykład, jeśli wartość 7 powtarza się w 3 układach, powrót 7.

+0

Znajdź co? Chcesz usunąć czy coś? – Bora

+0

php oferuje cały zestaw funkcji sprawdzania i manipulowania tablicą. Proponuję zapoznać się z witryną dokumentacji, szczególnie tam, gdzie wymienione są funkcje macierzy: http://www.php.net/manual/de/ref.array.php – arkascha

+0

Proszę, wyjaśnij swój cel. Teraz jest całkowicie niejasne –

Odpowiedz

7
<?php 
$array = array(array(7,18), array(12,7), array(12, 7, 13)); 
$result = array(); 


$first = $array[0]; 
for($i=1; $i<count($array); $i++){ 
$result = array_intersect ($first, $array[$i]); 
$first = $result; 
} 
print_r($result);//7 
?> 
1
$input = array("a" => "green", "red", "b" => "green", "blue", "red"); 
$result = array_unique($input); 
print_r($result); 

wykorzystania tego

$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red'); 

$ klucz = array_search ('zielona', $ macierz); // $ klucz = 2;

2

używać mój zwyczaj funkcja

function array_icount_values($arr,$lower=true) { 
    $arr2=array(); 
    if(!is_array($arr['0'])){$arr=array($arr);} 
    foreach($arr as $k=> $v){ 
     foreach($v as $v2){ 
     if($lower==true) {$v2=strtolower($v2);} 
     if(!isset($arr2[$v2])){ 
      $arr2[$v2]=1; 
     }else{ 
      $arr2[$v2]++; 
      } 
    } 
    } 
    return $arr2; 
} 

$arr = array_icount_values($arry); 

echo "<pre>"; 
print_r($arr); 
exit; 

Ouput

Array 
(
    [7] => 3 
    [18] => 1 
    [12] => 2 
    [13] => 1 
) 

nadzieję, że to na pewno pomoże.

1

Będziesz musiał przejść przez pierwszą tablicę, a dla każdej wartości w niej, sprawdź, czy jest to in_array().

$findme = array(); 

foreach ($array[0] as $key => $value) 
{ 
    if (in_array ($value, $array[1]) && in_array ($value, $array[2])) 
    { 
     $findme[] = $value; 
    } 
} 

// $findme will be an array containing all values that are present in all three arrays (if any). 
Powiązane problemy