Comment supprimer des éléments de tableau en php

墨辰丷
Libérer: 2023-03-29 20:44:02
original
1589 Les gens l'ont consulté

Cet article présente principalement la méthode de suppression d'éléments de tableau en PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Plusieurs méthodes PHP pour supprimer des éléments d'un tableau. Dans de nombreux cas, nos tableaux seront dupliqués. Alors que devons-nous faire si nous supprimons du contenu en double dans le tableau. Ces éléments doivent rester uniques, nous devons donc les trouver. façons de les supprimer. Ils utilisent ci-dessous plusieurs méthodes de parcours de requêtes pour supprimer les éléments de tableau en double.
Méthode 1. Supprimer complètement les instances de tableau en double -----Supprimer un élément du tableau

function array_remove_value(&$arr, $var){
foreach ($arr as $key => $value) {
if (is_array($value)) {
array_remove_value($arr[$key], $var);
} else {
$value = trim($value);
if ($value == $var) {
unset($arr[$key]);
} else {
$arr[$key] = $value;
}
}
}
}
Copier après la connexion

$a est un tableau :

count($a); //得到4
unset($a[1]); //删除第二个元素
count($a); //得到3
echo $a[2]; //数组中仅有三个元素,本想得到最后一个元素,但却得到blue,
echo $a[1]; //无值
?>
Copier après la connexion

C'est-à-dire qu'après avoir supprimé les éléments du tableau, le nombre d'éléments du tableau (obtenu avec count()) change, mais les clés ne sont pas réorganisées et la valeur correspondante doit être actionnée avec la clé avant de supprimer le tableau.
Plus tard, j'ai adopté une autre méthode, qui en fait ne s'appelle pas du tout une "méthode", j'ai utilisé la fonction array_splice() prête à l'emploi de PHP4.

count ($a); //得到4
array_splice($a,1,1); //删除第二个元素
count ($a); //得到3
echo $a[2]; //得到yellow
echo $a[1]; //得到blue
?>
Copier après la connexion
Méthode 2,

Fonction pour supprimer les éléments en double dans le tableau

Petit exemple supplémentaire :
function delmember(&$array, $id)
{
$size = count($array);
for($i = 0; $i <$size - $id - 1; $i ++)
{
$array[$id + $i] = $array[$id + $i + 1];
}
unset($array[$size - 1]);
}
Copier après la connexion

Méthode 1.

php a une fonction intégrée array_unique qui peut être utilisée pour supprimer les valeurs en double dans un tableau

    array_unique -- supprime les valeurs en double dans le tableau
  • array_unique description

  • array array_unique ( array array )
  • array_unique() accepte un tableau en entrée et renvoie un nouveau tableau sans valeurs en double
  • Notez que les noms des clés restent inchangés. array_unique() trie d'abord les valeurs sous forme de chaînes, puis conserve uniquement la première clé rencontrée pour chaque valeur, puis ignore toutes les clés suivantes. Cela ne signifie pas que la première occurrence de la même valeur dans un tableau non trié sera conservée.
Remarque : Deux unités sont considérées comme identiques si et seulement si (string) $elem1 === (string) $elem2. Autrement dit, lorsque les expressions des chaînes sont les mêmes.

La première unité sera conservée.
Exemple : array_unique()

L'exemple ci-dessus affichera :
<?php
$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
?>
Copier après la connexion

Array
(
 [a] => green
 [0] => red
 [1] => blue
)
Copier après la connexion
Méthode 2,

array_flip pour réaliser Effet de déduplicationUne autre méthode consiste à utiliser la fonction array_flip de PHP pour obtenir indirectement l'effet de déduplication

array_flip est une fonction qui inverse les clés et les valeurs du tableau. caractéristique que si le tableau Si deux valeurs sont identiques, alors la dernière clé et la dernière valeur seront conservées après inversion. Profitant de cette fonctionnalité, nous l'utilisons pour implémenter indirectement la déduplication du tableau


.

Les deux méthodes sont différentes. Utilisez
<?php
$arr = array("a"=>"a1","b"=>&#39;b1&#39;,"c"=>"a2","d"=>"a1");
$arr1 = array_flip($arr);
print_r($arr1);//先反转一次,去掉重复值,输出Array ( [a1] => d [b1] => b [a2] => c )
$arr2 = array_flip($arr);
print_r($arr2);//再反转回来,得到去重后的数组,输出Array ( [a1] => d [b1] => b [a2] => c )
$arr3 = array_unique($arr);
print_r($arr3);//利用php的array_unique函数去重,输出Array ( [a] => a1 [b] => b1 [c] => a2 )
?>
Copier après la connexion

array_flip pour obtenir la dernière clé et valeur de l'élément répété, et utilisez array_unique pour récupère le premier des deux éléments répétés.

Résumé  : Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

Partage d'une méthode simple pour réaliser une page statique en PHP

Analyse d'exemples CURL de transmission de données en PHP

Partage d'exemples simples d'ajout de données à des fichiers XML en 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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal