我就是不明白这是怎么回事。我缺少的是逻辑位。
我有$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'
你真的需要上面列出的格式吗?或者这样也行吗?