2013-08-26 16 views
6

Aus einer Funktion Ich bin ein mehrdimensionales Array wie folgt gegeben:finden doppelten Wert in mehrdimensionalen Array

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

Ich brauche doppelte Werte in den drei Arrays innerhalb des Haupt-Array zu finden. Wenn der Wert 7 Wiederholungen in dem 3-Arrays zum Beispiel, zurück 7.

+0

Finden was? Du willst entfernen oder irgendwas? – Bora

+0

php bietet eine ganze Reihe von Array-Untersuchung und Manipulation Funktionen. Ich schlage vor, Sie werfen einen Blick auf die Dokumentation Website, vor allem, wo diese Array-Funktionen aufgeführt sind: http://www.php.net/manual/de/ref.array.php – arkascha

+0

Bitte, erklären Sie Ihr Ziel. Jetzt ist es völlig unklar –

Antwort

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); 

Verwendung dieses Code

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

$ key = array_search ('grün', $ array); // $ schlüssel = 2;

2

meine benutzerdefinierte Funktion

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 
) 

Hoffnung verwenden, um dies sicher, dass Sie helfen.

1

Sie müssen das erste Array durchlaufen und für jeden Wert sehen, ob es in_array() ist.

$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). 
Verwandte Themen