Maison > Questions et réponses > le corps du texte
**
**
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"
}
}
阿神2017-05-16 13:09:13
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;
}
習慣沉默2017-05-16 13:09:13
$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);
怪我咯2017-05-16 13:09:13
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
怪我咯2017-05-16 13:09:13
É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...
高洛峰2017-05-16 13:09:13
<?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.
淡淡烟草味2017-05-16 13:09:13
$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);