Php 按字母顺序对数组排序

Php 按字母顺序对数组排序,php,arrays,sorting,multidimensional-array,Php,Arrays,Sorting,Multidimensional Array,我有这个阵列: $words = array( array('Agreement range','Accord'), array('Reception','Accueil') ); 我想做的是根据字母对这个数组进行排序,考虑到第一项(协议范围,这种情况下的接收) 像这样: [A] => array('Agreement range','Accord') [R] => array('Reception','Accueil') 谢谢你的帮助 您可以尝试循环遍历$wor

我有这个阵列:

$words = array(
    array('Agreement range','Accord'),
    array('Reception','Accueil')
);
我想做的是根据字母对这个数组进行排序,考虑到第一项(协议范围,这种情况下的接收)

像这样:

[A] =>
array('Agreement range','Accord')
[R] =>
array('Reception','Accueil')

谢谢你的帮助

您可以尝试循环遍历$words数组,并为每个元素创建一个新数组(我称为sorted)en元素,其中包含当前words元素的内容,并将元素第一个单词的第一个字母作为关键字

<?php
  $words = array(
      array('Agreement range','Accord'),
      array('Reception','Accueil')
  );

  $sorted = array();

  foreach($words AS $element){
    $sorted[$element[0][0]] = $element;
  }

  print_r($sorted);
?>
请注意,如果有更多的元素具有第一个单词的相同首字母,则将使用排序数组中的该键覆盖现有元素。要解决此问题,如果出现这种情况,可以按如下方式更改循环:

foreach($words AS $element){
    if(!isset($sorted[$element[0][0]]))
      $sorted[$element[0][0]] = $element;
    else
      $sorted[$element[0][0]] = array_merge($sorted[$element[0][0]],$element);
  }

欢迎来到堆栈溢出。我建议你阅读,这样当你在这里提问时,你会得到一些关于你期望得到什么的建议。请不要只是发布你的需求,你需要展示你解决问题的努力,并解释它在哪里以及如何未能达到你想要的效果。请避免回答那些仅仅是需求转储的问题,并且OP方面不要表现出任何努力。通过为他们完成全部工作,我们鼓励用户继续发布不符合网站指南的低质量问题。
foreach($words AS $element){
    if(!isset($sorted[$element[0][0]]))
      $sorted[$element[0][0]] = $element;
    else
      $sorted[$element[0][0]] = array_merge($sorted[$element[0][0]],$element);
  }