[英]sorting of a multy dimensional array php
I need to sort an array like 我需要对数组进行排序
$arrayName = array(0 => array('val' => 100), 1 => array('val' => 75),3 => array('val' => 10), 4 => array('val' => 15));
I need output like this 我需要这样的输出
$arrayName = array(3 => array('val' => 10), 4 => array('val' => 15),1 => array('val' => 75), 0 => array('val' => 100));
This should work for you: 这应该为您工作:
(Use asort()
so you don't lose your key's) (使用
asort()
这样就不会丢失密钥)
<?php
$arrayName = array(0 => array('val' => 100), 1 => array('val' => 75),3 => array('val' => 10), 4 => array('val' => 15));
asort($arrayName);
print_r($arrayName);
?>
Output: 输出:
Array ( [3] => Array ( [val] => 10 ) [4] => Array ( [val] => 15 ) [1] => Array ( [val] => 75 ) [0] => Array ( [val] => 100 ) )
try this 尝试这个
foreach ($arrayName as $key => $row) {
$data[$key] = $row[0];
// of course, replace 0 with whatever is the date field's index
}
array_multisort($data, SORT_ASC, $arrayName);
Rizier123 has the simplest solution. Rizier123具有最简单的解决方案。 If you needed to have more complex comparisons (say your array had multiple keys/values that you want to sort on), you could use
uasort
and create a custom comparison function ( uasort
preserves array keys while usort
does not). 如果您需要进行更复杂的比较(例如您的数组具有要排序的多个键/值),则可以使用
uasort
并创建一个自定义比较函数( uasort
保留数组键,而usort
uasort
保留)。 For example: 例如:
public function cmp($a, $b)
{
if ($a['val'] == $b['val']) {
return 0;
}
return ($a['val'] < $b['val']) ? -1 : 1;
}
uasort($arrayName, 'cmp');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.