PHP foreach按键/值排序


PHP foreach sort by key / values

我就是不明白这是怎么回事。我缺少的是逻辑位。

我有$myArray:

array(3) {
  [0]=>
  array(2) {
    ["lang"]=>
    string(4) "en"
    ["url"]=>
    string(42) "http://feeds.feedburner.com/wordpress/haJM"
  }
  [1]=>
  array(2) {
    ["lang"]=>
    string(4) "en"
    ["url"]=>
    string(37) "http://feeds.feedburner.com/hackaday/LgoM"
  }
  [2]=>
  array(2) {
    ["lang"]=>
    string(4) "klingon"
    ["url"]=>
    string(36) "http://www.maitre-eolas.fr/feed/atom"
  }
}

一个未知大小的数组,每个元素都是一个已知大小的数组,(2个键/值对(lang = something &Url =什么)关键是不知道lang是什么。它可以是任何(字母数字)值。

我想做的是建立一个新的,干净的数组,其中键按其名称排序,像这样:

array(2) {
  [0]=>
  array(2) {
    ["lang"]=>
    string(2) "en"
    ["urls"]=>
array(2) {
  string(42) "http://feeds.feedburner.com/wordpress/haJM"
  string(37) "http://feeds.feedburner.com/hackaday/LgoM"
}
  }
  [1]=>
  array(2) {
    ["lang"]=>
    string(6) "klingon"
    ["urls"]=>
array(1) {
  string(36) "http://www.maitre-eolas.fr/feed/atom"
}
  }
}

但是当我尝试将第一个$myArray[0]['lang']放在变量中并将其与以下内容进行比较时,它…的工作原理。一次。和停止。

我做错了,我知道

试试这个:

$aResult = array();
foreach($aInput as $aRow){
    $aResult[$aRow['lang']][] = $aRow['url'];
}

这将给你:

array:
  'Klingon' 
      'URL1' 
      'URL2' 
  'en' 
      'URL1' 
      'URL2'

你真的需要上面列出的格式吗?或者这样也行吗?