Maison >développement back-end >Problème PHP >Comment supprimer un tableau php en fonction de la valeur

Comment supprimer un tableau php en fonction de la valeur

藏色散人
藏色散人original
2021-09-10 11:01:282232parcourir

Comment supprimer un tableau PHP en fonction de la valeur : 1. Utilisez unset pour supprimer après avoir parcouru foreach ; 2. Supprimez en utilisant unset après avoir passé array_flip ; 3. Supprimez via array_search 4. Utilisez array_keys pour rechercher la valeur spécifiée, puis supprimez-le. en boucle.

Comment supprimer un tableau php en fonction de la valeur

L'environnement d'exploitation de cet article : système Windows7, version PHP7.1, ordinateur DELL G3

Comment supprimer un tableau php en fonction de la valeur ?

Méthodes courantes permettant à PHP de supprimer des éléments avec des valeurs spécifiées​​dans des tableaux

Cet article décrit l'exemple de PHP supprimant des éléments avec des valeurs spécifiées​​dans des tableaux. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Le tableau de test est le suivant :

//这是一个测试数组
$testArr = array(
  't' => 'qq',
  'q' => 'qq',
  'b' => 'baidu',
  'a' => 'ali',
  'm' => 'xiaomi'
);

Première méthode :

//foreach遍历后unset删除,这种方法也是最容易想到的方法
function delByValue($arr, $value){
  if(!is_array($arr)){
    return $arr;
  }
  foreach($arr as $k=>$v){
    if($v == $value){
      unset($arr[$k]);
    }
  }
  return $arr;
}

Test :

$testArr = delByValue($testArr,'baidu');
print_r($testArr)

Résultats d'exécution :

Array
(
[ t] => qq
[q] => qq
[a] => ali
[m] => xiaomi
)

Méthode 2 :

//array_flip之后unset,这种方法有一个弊端,就是反转后由于有两个键值都为qq,有一个数据将会丢失,所以在使用时请谨慎)
function delByValue($arr, $value){
  $tempArr = array_flip($arr);
  unset($tempArr[$value]);
  return array_flip($tempArr);
}

Test :

$testArr = delByValue($testArr,'baidu');
print_r($testArr)

Résultat d'exécution :

Array
(
 [q] => qq
 [a] => ali
 [m] => xiaomi
)

Méthode 3 :

//array_search,这种方法亦有弊端,array_search搜索到一个合适的值时便返回,所以在数组存在多个相关的值这种方法不适用)
function delByValue($arr, $value){
  $key = array_search($value,$arr);
  if(isset($key)){
    unset($arr[$key]);
  }
  return $arr;
}

Test :

$testArr = delByValue($testArr,'baidu');
print_r($testArr)

Courir résultat :

Array
(
[t] => qq
[q] => qq
[a] => ali
[m] => xiaomi
)

Méthode 4 :

//使用array_keys搜索指定的值再循环unset)
function delByValue($arr, $value){
  $keys = array_keys($arr, $value);
  var_dump($keys);
  if(!empty($keys)){
    foreach ($keys as $key) {
      unset($arr[$key]);
    }
  }
  return $arr;
}

Test :

$testArr = delByValue($testArr,'baidu');
print_r($testArr)

Résultat d'exécution :

array(1) {
[0]=>
string(1) "b"
}
Array
(
[t] => qq
[ q] => qq
[a] => ali
[m] => xiaomi
)

Pour résumer les quatre méthodes, les plus réalisables sont la méthode 1 et la méthode 4. deux méthodes, c'est mieux, alors ça devrait l'être. Il s'agit d'une analyse détaillée de la situation spécifique.

【Apprentissage recommandé : "Tutoriel vidéo PHP"】

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn