[英]Sorting multi-dimensional array based on value of specific key in array
我有一个像这样的数组:
$array[] = array(
"name" => "sample",
"image" => "sample.jpg",
"header" => "sampleDelights",
"intro_copy" => ""
);
$array[] = array(
"name" => "lwmag",
"image" => "lwmag.jpg",
"header" => "LW Mag",
"intro_copy" => ""
);
我想根据PHP键“ header”中的字母顺序对该数组进行排序。 我已经尝试过usort并搜索了内置函数,但是找不到一个(或看起来过去了)。 一个PHP函数可能吗?
看看“ ksort”
这对于按键排列数组非常有用。
<?php
$sample = array("d" => "maximum", "a" => "minimum", "c" => "mid")
ksort($sample);
foreach ($sample as $key => $val) {
echo "$key = $val \n";
}
?>
那会显示
a = minimum
c = mid
d = maximum
希望那是你所追求的。
资料来源: PHP手册
从php.net看这个功能
function array_sort($array, $on, $order=SORT_ASC)
{
$new_array = array();
$sortable_array = array();
if (count($array) > 0) {
foreach ($array as $k => $v) {
if (is_array($v)) {
foreach ($v as $k2 => $v2) {
if ($k2 == $on) {
$sortable_array[$k] = $v2;
}
}
} else {
$sortable_array[$k] = $v;
}
}
switch ($order) {
case SORT_ASC:
asort($sortable_array);
break;
case SORT_DESC:
arsort($sortable_array);
break;
}
foreach ($sortable_array as $k => $v) {
$new_array[$k] = $array[$k];
}
}
return $new_array;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.