2016-11-01 8 views
1

Ich habe ein Array ablehnen:bester Weg, um einige Elemente von Array

$array = array(
    'aaaDSgsdfg' => 3, 
    'aaaRewrwer' => 4, 
    'bbbBsdfs' => 1, 
    'aaaGgfdg' => 4, 
    'bbbTrtert' => 5 
); 

Welches ist der beste Weg ist, Element abzulehnen mit dem Index mit „bbb“ ab?

ich kann:

$new = array(); 
foreach ($array as $index => $element) { 
    if (substr($index, 0, 2) == 'aaa') { 
     $new[$index] = $element; 
    } 
} 

Aber vielleicht ist besser Funktion für das? Vielleicht array_map?

+0

Bitte denken Sie daran, wie lang diese Zeichenfolge sein wird: 'substr ($ index, 0, 2)' Sie möchten wahrscheinlich die Länge auf 3 ändern. – Rizier123

Antwort

0

array_filter ist, was Sie suchen:

$array = array_filter($array, function($key) { 
    return substr($index, 0, 2) === 'aaa'; 
}, ARRAY_FILTER_USE_KEY); 
1

Wenn Sie 5.6+ PHP sind, können Sie array_filter verwenden, um dies zu erreichen:

$array = array_filter(
    $array, 
    function ($e) { return strpos($e, 'bbb') !== 0; }, 
    ARRAY_FILTER_USE_KEY 
); 

Siehe https://eval.in/669810

Verwandte Themen