我有一個帶索引子數組的關聯數組,每個數組包含包含內容和索引的關聯數組。所以像這樣(在PHP):將關聯數組轉換爲索引數組的方法
$assoc_arr =
array("second" => array(
array("position" => 4,
"content" => "Valiant"),
array("position" => 5,
"content" => "Hail")
),
"first" => array(
array("position" => 0,
"content" => "Hail"),
array("position" => 3,
"content" => "Victors"),
array("position" => 2,
"content" => "the"),
array("position" => 1,
"content" => "to")
)
);
我希望把所有那些爲索引的數組,其中的指數是關聯數組中的「位置」。所以,最終的陣列應該是:
Array ([0] => Hail [1] => to [2] => the [3] => Victors [4] => Valiant [5] => Hail)
目前,我合併所有的數組的最高水平數組內,然後通過各那些子陣列的位置進行排序,然後推內容創建索引數組按順序放到一個新的陣列上。如此:
$pos_arr = array_merge($assoc_arr["second"], $assoc_arr["first"]);
usort($pos_arr, function($a, $b) {
return $a["position"] >= $b["position"] ? 1 : -1;
});
$indexed_arr = array();
foreach ($pos_arr as $elem) {
array_push($indexed_arr, $elem["content"]);
}
看起來好像必須有更好的方法來做到這一點!任何人都可以想到一個?
數據來自我無法更改的結構不完整的XML文檔。
看我的編輯,如果你需要的鑰匙是我n順序。 –
完美。謝謝!一旦它讓我接受,我會接受。 –