Wie kann ich ein Element basierend auf dem Schlüssel, zum Beispiel $array[testing3] oder basierend auf dem Wert, zum Beispiel Template3, aus dem folgenden Array in PHP entfernen?

$array = array(
    'mentor' => 'Template',
    'mentor1' => 'Template1',
    'testing' => 'Template2',
    'testing3' => 'Template3',
    'testing4' => 'Template4',
    'testing5' => 'Template5',
    'testing6' => 'Template6'
);
php
2
James 22 Feb. 2020 im 05:37

3 Antworten

Beste Antwort

Verwenden wir array_filter(), um das Ziel zu erreichen.

$array = array(
    'mentor' => 'Template',
    'mentor1' => 'Template1',
    'testing' => 'Template2',
    'testing3' => 'Template3',
    'testing4' => 'Template4',
    'testing5' => 'Template5',
    'testing6' => 'Template6'
);

Entfernen Sie ein Element in einem Array, z. B. Template3

$filtered_array1 = array_filter($array, function($val) {
    return 'Template3' != $val;
});

print_r($filtered_array1);

Entfernen Sie alle Elemente in einem Array außer Template3 aus dem Array

$filtered_array2 = array_filter($array, function($val) {
    return 'Template3' == $val;
});

print_r($filtered_array2);

Bisher haben wir value verwendet, um ein Array zu filtern. Sie können ein Array auch basierend auf key filtern. Sie müssen das dritte Argument für die Funktion verwenden. Für das dritte Argument gibt es zwei Optionen: ARRAY_FILTER_USE_KEY und ARRAY_FILTER_USE_BOTH. Sie können einen von ihnen verwenden. Verwenden Sie das Flag ARRAY_FILTER_USE_KEY, um ein Element zu entfernen, das auf key basiert, z. B. testing3:

$filtered_array3 = array_filter($array, function($key) {
    return 'testing3' != $key;
}, ARRAY_FILTER_USE_KEY);

print_r($filtered_array3);

Weitere Informationen zur array_filter() -Funktion finden Sie in diesem Dokument

3
unclexo 22 Feb. 2020 im 16:36

Sie können unset verwenden (https://www.php.net/unset)

$array = array(
  'mentor' => 'Template',
  'mentor1' => 'Template1',
  'testing' => 'Template2',
  'testing3' => 'Template3',
  'testing4' => 'Template4',
  'testing5' => 'Template5',
  'testing6' => 'Template6');

  unset($array['testing3']);

Oder wenn Sie es anhand des Werts suchen müssen, können Sie array_search (https: //) verwenden www.php.net/array-search)

// Remove the element if it exists
if($element = array_search("Template3",$array)){
  unset($array[$element]);
}

So beantworten Sie die Frage, die in den Kommentaren zum Beibehalten nur des gesuchten Array-Elements gestellt wurde: Verwenden Sie array_search und überschreiben Sie Ihr Array (oder erstellen Sie ein neues Array daraus).

$array = array_search('Template3', $array);
2
Jeff Vdovjak 22 Feb. 2020 im 17:08

Sie können unset () verwenden, um dies zu erreichen:

unset(myArray['testing3']);
3
iJamesPHP2 22 Feb. 2020 im 02:42