Mit PHP ein mehrdimensionales Array durchsuchen

Die Methode „array_multi_search“ durchsucht ein mehrdimensionales Array nach einem Wert. Optional kann die Suche auf einen bestimmten Schlüssel eingeschränkt werden. Im Erfolgsfall wird ein Array mit den Suchergebnissen zurückgegeben.

Code:

function array_multi_search($mSearch, $aArray, $sKey = "")
{
    $aResult = array();
   
    foreach( (array) $aArray as $aValues)
    {
        if($sKey === "" && in_array($mSearch, $aValues)) $aResult[] = $aValues;
        else
        if(isset($aValues[$sKey]) && $aValues[$sKey] == $mSearch) $aResult[] = $aValues;
    }
   
    return $aResult;
}

Mit PHP ein mehrdimensionales Array durchsuchen weiterlesen

PHP: Doppelte Elemente aus einem mehrdimensionalen Array entfernen

Der folgende Code entfernt alle doppelten Elemente aus einem mehrdimensionalen Array. Der strukturelle Aufbau spielt dabei keine Rolle.

Code:

/* Vorher:
Array
(
    [0] => Array ( [0] => unique )
    [1] => Array
        (
            [0] => Array ( [0] => 1337 )
            [1] => Array ( [0] => 1338 )
        )
    [2] => Array
        (
            [0] => Array ( [0] => 1337 )
            [1] => Array ( [0] => 1338 )
        )
    [3] => Array ( [test] => test )
    [4] => Array ( [test] => test )
    [5] => Array ( [0] => 123456 )
    [6] => Array ( [0] => 123456 )
)
*/


$aArray = array_map("unserialize", array_unique(array_map("serialize", $aArray)));

/* Nachher:
Array
(
    [0] => Array ( [0] => unique )
    [1] => Array
        (
            [0] => Array ( [0] => 1337 )
            [1] => Array ( [0] => 1338 )
        )
    [3] => Array ( [test] => test )
    [5] => Array ( [0] => 123456 )
)
*/