Cet article présente principalement quelques tableaux sur php, qui ont une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer
Simulation de la structure des données
Après l'ajout d'un tableau.
array_push $a=array("red","green"); array_push($a,"blue","yellow"); Array ( [0] => red [1] => green [2] => blue [3] => yellow )
Ajouter avant le tableau
array_unshift $a=array("a"=>"red","b"=>"green"); array_unshift($a,"blue"); Array ( [0] => blue [a] => red [b] => green )
Supprimer avant le tableau
$a=array("a"=>"red","b"=>"green","c"=>"blue"); echo array_shift($a); redArray ( [b] => green [c] => blue )
Supprimer après le tableau
$a=array("red","green","blue"); array_pop($a); Array ( [0] => red [1] => green )
Bases de php - tri de tableaux bidimensionnels array_multisort
Le tri de tableaux bidimensionnels ou de tableaux multidimensionnels est un problème courant en php, nous avons une fonction spéciale de tri de tableaux multidimensionnels. , comme suit Une brève introduction :
array_multisort(array1, sorting order, sorting type, array2, array3..) est une fonction qui trie plusieurs tableaux ou tableaux multidimensionnels.
tableau1 Obligatoire. Spécifie le tableau d'entrée.
ordre de tri Facultatif. Spécifiez l'ordre de tri. Les valeurs possibles sont SORT_ASC et SORT_DESC.
Type de tri Facultatif. Spécifie le type de tri. Les valeurs possibles sont SORT_REGULAR, SORT_NUMERIC et SORT_STRING.
array2 Facultatif. Spécifie le tableau d'entrée.
array3 Facultatif. Spécifie le tableau d'entrée.
Le tableau du paramètre est traité comme une colonne de tableau et trié par ligne - ceci est similaire à la fonctionnalité de la clause ORDER BY de SQL. Le premier tableau est le tableau principal à trier. Si les lignes (valeurs) du tableau sont comparées comme étant identiques,
sera trié en fonction de la taille de la valeur correspondante dans le tableau d'entrée suivant, et ainsi de suite.
Le premier paramètre est un tableau, et chaque paramètre suivant peut être un tableau ou l'un des indicateurs d'ordre de tri suivants (l'indicateur de tri est utilisé pour modifier l'ordre de tri par défaut) :
SORT_ASC - Par défaut, par ordre croissant arrangement. (A-Z)
SORT_DESC - Trier par ordre décroissant. (Z-A)
Le type de tri peut alors être précisé :
SORT_REGULAR - Par défaut. Disposez chaque élément dans un ordre régulier.
SORT_NUMERIC - Organisez chaque élément par ordre numérique.
SORT_STRING - Organisez chaque élément par ordre alphabétique
<?php function my_sort($arrays,$sort_key,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC ){ if(is_array($arrays)){ foreach ($arrays as $array){ if(is_array($array)){ $key_arrays[] = $array[$sort_key]; }else{ return false; } } }else{ return false; } array_multisort($key_arrays,$sort_order,$sort_type,$arrays); return $arrays; } $person = array( array('id'=>1,'name'=>'fj','weight'=>100,'height'=>180), array('id'=>2,'name'=>'tom','weight'=>53,'height'=>150), array('id'=>3,'name'=>'jerry','weight'=>120,'height'=>156), array('id'=>4,'name'=>'bill','weight'=>110,'height'=>190), array('id'=>5,'name'=>'linken','weight'=>80,'height'=>200), array('id'=>6,'name'=>'madana','weight'=>95,'height'=>110), array('id'=>7,'name'=>'jordan','weight'=>70,'height'=>170) ); var_dump($person); $person = my_sort($person,'name',SORT_ASC,SORT_STRING); var_dump($person); $person = my_sort($person,'weight'); var_dump($person); ?>
Par exemple, le tableau suivant :
Le code est le suivant :
$users = array( array('name' => 'tom', 'age' => 20) , array('name' => 'anny', 'age' => 18) , array('name' => 'jack', 'age' => 22) );
J'espère pouvoir les trier par âge du petit au grand. L'auteur a trié deux méthodes et les a partagées avec tout le monde.
1. Utilisez array_multisort
L'utilisation de cette méthode sera plus gênante. Vous devez extraire l'âge et le stocker dans un tableau unidimensionnel, puis l'organiser par ordre croissant par âge. Le code spécifique est le suivant :
Le code est le suivant :
$ages = array(); foreach ($users as $user) { $ages[] = $user['age']; }
array_multisort($ages, SORT_ASC, $users);
Après exécution, $users est un tableau trié, qui peut être imprimé pour voir. Si vous devez d'abord trier par âge par ordre croissant, puis par nom par ordre croissant, la méthode est la même que ci-dessus, c'est-à-dire extraire un tableau de noms supplémentaire. La méthode de tri finale est appelée comme ceci :
Le. le code est le suivant :
array_multisort($ages, SORT_ASC, $names, SORT_ASC, $users);
Le point clé ici est de stocker d'abord les clés à trier dans un tableau unidimensionnel, puis vous pouvez utilisez la fonction array_multisort() pour trier le tableau en fonction de la clé Sorted, bien sûr, vous pouvez trier ici
Ne pas appliquer la fonction array_multisort(),
Cet effet peut également être obtenu uniquement via foreach traversée, mais puisque les développeurs PHP nous ont fourni une meilleure méthode, nous pouvons éviter des problèmes inutiles.
Fonction de déduplication de tableau bidimensionnel PHP
Le tableau PHP a une fonction intégrée array_unique () pour supprimer les doublons, mais la fonction array_unique de PHP ne s'applique qu'aux tableaux unidimensionnels, pas aux tableaux multidimensionnels, comme suit
fonction array_unique qui fournit un tableau bidimensionnel
function unique_arr($array2D,$stkeep=false,$ndformat=true) { // 判断是否保留一级数组键 (一级数组键可以为非数字) if($stkeep) $stArr = array_keys($array2D); // 判断是否保留二级数组键 (所有二级数组键必须相同) if($ndformat) $ndArr = array_keys(end($array2D)); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串 foreach ($array2D as $v){ $v = join(",",$v); $temp[] = $v; } //去掉重复的字符串,也就是重复的一维数组 $temp = array_unique($temp); //再将拆开的数组重新组装 foreach ($temp as $k => $v) { if($stkeep) $k = $stArr[$k]; if($ndformat) { $tempArr = explode(",",$v); foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval; } else $output[$k] = explode(",",$v); } return $output; } $array2D=array('first'=>array('title'=>'1111','date'=>'2222'),'second'=>array('title'=>'1111','date'=>'2222'),'third'=>array ('title'=>'2222','date'=>'3333')); print_r($array2D); print_r(unique_arr($array2D,true));
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!