Maison  >  Article  >  développement back-end  >  Comment convertir un tableau php en tableau d'index

Comment convertir un tableau php en tableau d'index

PHPz
PHPzoriginal
2023-04-26 14:19:13561parcourir

Dans la programmation PHP, le tableau est un type de données très important, qui nous facilite le stockage, le traitement et l'exploitation des données. Parmi eux, le tableau d'index est l'un des types de tableau les plus couramment utilisés. Il utilise un nombre comme nom de clé, correspondant à une valeur numérique ou à une valeur de chaîne. Ici, nous verrons comment effectuer des permutations sur des tableaux indexés.

1. Méthode de tri des tableaux

En PHP, nous pouvons utiliser la fonction sort() pour trier le tableau d'index par ordre croissant, et la fonction rsort() pour trier le tableau d'index par ordre décroissant, comme indiqué ci-dessous :

//升序排列 
$numbers = array(3, 1, 5, 2, 4); 
sort($numbers); 
print_r($numbers); 

//降序排列 
$numbers = array(3, 1, 5, 2, 4);  
rsort($numbers);  
print_r($numbers);

Les résultats de sortie sont :

Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) 
Array ( [0] => 5 [1] => 4 [2] => 3 [3] => 2 [4] => 1 )

2. Méthode de transposition de tableau

La transposition de tableau fait référence à l'échange de lignes et de colonnes dans un tableau multidimensionnel pour générer un nouveau tableau. Par exemple, pour un tableau à deux dimensions :

$nums = array( 
    array(1, 2, 3), 
    array(4, 5, 6), 
    array(7, 8, 9) 
);

Nous pouvons utiliser la fonction array_map() et la valeur nulle pour le transposer comme suit :

function transposeArray($array, $nullFiltered = true) { 
    $aOut = array_map(null, ...$array); 
    return ($nullFiltered) ? array_filter($aOut) : $aOut; 
} 
 
print_r(transposeArray($nums));

Le résultat de sortie est :

Array ( 
    [0] => Array ( [0] => 1 [1] => 4 [2] => 7 ) 
    [1] => Array ( [0] => 2 [1] => 5 [2] => 8 ) 
    [2] => Array ( [0] => 3 [1] => 6 [2] => 9 ) 
)

Ici, nous définissons d'abord une fonction nommé transposeArray est passé dans un tableau et une variable booléenne. Parmi eux, nous utilisons le paramètre de longueur variable ($array) introduit dans la version PHP 5.6 pour implémenter la valeur nulle pour chaque sous-tableau du tableau multidimensionnel à transposer. Enfin, nous utilisons la fonction array_filter() pour filtrer les valeurs nulles dans le tableau de résultats et obtenir les résultats requis.

3. Combinaison du tri et de la transposition de tableaux

Dans le processus de programmation réel, nous devons souvent trier un tableau multidimensionnel en fonction d'un certain mot-clé, et également transposer le tableau après le tri. Par exemple, nous avons le tableau associatif suivant avec des nombres comme clés :

$arr = array(
    3 => array("name" => "apple", "price" => 2.5),
    1 => array("name" => "banana", "price" => 1.5),
    4 => array("name" => "orange", "price" => 3.5),
    2 => array("name" => "pear", "price" => 2.0)
);

Ensuite, nous pouvons définir la fonction sortArray() pour trier le tableau par ordre croissant en fonction du « prix » et transposer le tableau résultat. Vous pouvez également le transmettre. un nom de champ pour trier selon différents champs. Le code est le suivant :

function sortArray($arr, $keyName = '', $sortOrder = 'ASC') {
    $sortResult = array();
    $arrLen = count($arr);
    if ($arrLen > 0) {
        $priceArr = array();
        for ($i = 0; $i < $arrLen; $i++) {
            if ($keyName != &#39;&#39; && isset($arr[$i][$keyName])) {
                $priceArr[] = $arr[$i][$keyName];
            } else {
                $priceArr[] = $arr[$i][&#39;price&#39;];
            }
        }
        if (strtolower($sortOrder) == &#39;desc&#39;) {
            array_multisort($priceArr, SORT_DESC, SORT_NUMERIC, $arr);
        } else {
            array_multisort($priceArr, SORT_ASC, SORT_NUMERIC, $arr);
        }
        $sortResult = transposeArray($arr);
    }
    return $sortResult;
}

print_r(sortArray($arr, &#39;price&#39;, &#39;ASC&#39;));

Lorsque nous passons 'price' comme deuxième paramètre, le résultat de sortie est :

Array ( 
    [name] => Array ( [0] => banana [1] => pear [2] => apple [3] => orange ) 
    [price] => Array ( [0] => 1.5 [1] => 2 [2] => 2.5 [3] => 3.5 ) 
)

Ici, nous jugeons d'abord si le tableau est vide. , sinon, obtenez d'abord la valeur du prix dans le tableau d'origine et utilisez la fonction array_multisort() pour trier le tableau par ordre croissant ou décroissant. Ensuite, nous utilisons la fonction transposeArray() pour transposer le tableau résultant.

Résumé

En résumé, cet article présente la méthode de tri des tableaux d'index en PHP. Le tri est implémenté via les fonctions sort() et rsort(), la transposition du tableau est implémentée à l'aide de la fonction transposeArray(), et le tri et la transposition sont implémentés en combinant le tri et la transposition pour trier les tableaux multidimensionnels par champs et opérations de transposition. La maîtrise de ces méthodes apportera plus de commodité et de flexibilité à notre programmation PHP et améliorera l'efficacité de notre développement de programmes.

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