Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
151 views
in Technique[技术] by (71.8m points)

How to sort an array of arrays in php?

In php I have a numerical array of associative arrays:

mainArray: 
[
  array1:['title':'Record a','order':'2'],
  array2:['title':'Record b','order':'4'],
  array3:['title':'Record c','order':'1'],
  array4:['title':'Record d','order':'3']
]

What is the simplest way to sort mainArray by the 'order' value of each associative array?

Thanks

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can use usort function. Since PHP 5.4 you can use closure function:

usort($mainArray, function ($a, $b) {
  $a_val = (int) $a['order'];
  $b_val = (int) $b['order'];

  if($a_val > $b_val) return 1;
  if($a_val < $b_val) return -1;
  return 0;
});

Or version for PHP < 5.4:

usort($mainArray, 'myCompare');

function myCompare($a, $b) {
  $a_val = (int) $a['order'];
  $b_val = (int) $b['order'];

  if($a_val > $b_val) return 1;
  if($a_val < $b_val) return -1;
  return 0;
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

56.9k users

...