php - 对表PHP中的多维数组进行排序
问题描述
我只想对表格上的“名称”值进行排序,但它似乎不起作用。
$fruits = array(
array(
'image' => '<img class="img" src="papaya.jpg">',
'name' => 'Papaya',
'description'=> 'Color: Yellow',
),
array(
'image' => '<img class="img" src="blueberry.jpg">',
'name' => 'Blueberry',
'description'=> 'Color: Blue',
),
array(
'image' => '<img class="img" src="orange.jpg">',
'name' => 'Orange',
'description'=> 'Color: Orange',
),
);
array_multisort($fruits['name'], SORT_ASC);
我希望输出是这样的:
图片 | 姓名 | 描述 |
---|---|---|
图片 | 蓝莓 | 颜色:蓝色 |
图片 | 橙子 | 颜色为橙色 |
图片 | 番木瓜 | 颜色:黄色 |
解决方案
尝试使用usort
具有适当回调函数的函数。你可以这样做。
$fruits = array(
array(
'image' => '<img class="img" src="papaya.jpg">',
'name' => 'Papaya',
'description' => 'Color: Yellow',
),
array(
'image' => '<img class="img" src="blueberry.jpg">',
'name' => 'Blueberry',
'description' => 'Color: Blue',
),
array(
'image' => '<img class="img" src="orange.jpg">',
'name' => 'Orange',
'description' => 'Color: Orange',
),
);
function cmp($a, $b)
{
return strcmp($a["name"], $b["name"]);
}
usort($fruits, "cmp");