php - Comment trier un tableau comme celui-ci?
怪我咯
怪我咯 2017-05-16 13:07:13
0
6
379

**

按照content2排序

**

tableau(5) { [0]=> tableau(2) { ["identifiant"]=> chaîne(1) "2" ["content2"]=> chaîne(2) "XL" } [1]=> tableau(2) { ["identifiant"]=> chaîne(1) "1" ["content2"]=> chaîne(1) "L" } [2]=> tableau(2) { ["identifiant"]=> chaîne(1) "3" ["content2"]=> chaîne(3) "XXL" } [3]=> tableau(2) { ["identifiant"]=> chaîne(1) "4" ["content2"]=> chaîne(1) "L" } [4]=> tableau(2) { ["identifiant"]=> chaîne(1) "5" ["content2"]=> chaîne(2) "XL" } }
怪我咯
怪我咯

走同样的路,发现不同的人生

répondre à tous(6)
阿神

Tableau de tri de tableaux multidimensionnels PHP

/**
* Sort array by filed and type, common utility method.
* @param array $data
* @param string $sort_filed
* @param string $sort_type SORT_ASC or SORT_DESC
*/
public function sortByOneField($data, $filed, $type)
{
    if (count($data) <= 0) {
        return $data;
    }
    foreach ($data as $key => $value) {
        $temp[$key] = $value[$filed];
    }
    array_multisort($temp, $type, $data);
    return $data;
}
習慣沉默
 $list = [
    ['id'=>1,'content1'=>'L'],
    ['id'=>2,'content1'=>'XL'],
    ['id'=>3,'content1'=>'XXL'],
    ['id'=>4,'content1'=>'M'],
    ['id'=>5,'content1'=>'LM'],
    ['id'=>6,'content1'=>'XXXL'],
];
    foreach ($list as $key => $value) {
        $data[$key] = $value['content1'];
    }

    array_multisort($data, SORT_ASC, $list);
    var_dump($list);
刘奇

Il n'y a pas de modèle régulier dans les tailles de vêtements, n'est-ce pas ? Doivent-ils être numérotés dans un certain ordre lorsqu'ils sont insérés dans la bibliothèque et triés à nouveau lorsqu'ils sont retirés

刘奇

Écrivez simplement un tri à bulles.
En ce qui concerne L<XL<XXL<XXL, configurez simplement une cartographie à des fins de comparaison.

Vous pouvez également utiliser usort pour personnaliser la logique de tri. Référence :

http://php.net/manual/zh/func...

小葫芦
<?php 
$list = [
    ['id'=>1,'content'=>'L'],
    ['id'=>2,'content'=>'XL'],
    ['id'=>3,'content'=>'XXL'],
    ['id'=>4,'content'=>'M'],
    ['id'=>5,'content'=>'LM'],
    ['id'=>6,'content'=>'XXXL'],
];

$size = [
    'XXXL' => 1,
    'XXL' => 2,
    'XL' => 3,
    'L' => 4,
    'M' => 5,
    'LM' => 6,
];

$temp = array();
foreach ($list as $key => $val) {
    $temp[$size[$val['content']]] = $val;
}
// print_r($temp);die;

ksort($temp); // 从低到高  krsort 从高到低
print_r($temp);
?>

Je viens de l'écrire avec désinvolture, je ne sais pas si c'est ce que vous voulez.

淡淡烟草味
$arr = [
    ["id" => "1", "content" => 'XL' ],
    ["id" => "2", "content" => 'L'],
    ["id" => "3", "content" => 'XXL' ],
];

$rules = ['L'=>1, 'XL'=>2, 'XXL'=>3];

usort($arr, function($a, $b) use ($rules) {
    return $rules[$a['content']] <=> $rules[$b['content']];
});

var_dump($arr);
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal