【发布时间】:2015-09-01 14:27:40
【问题描述】:
我想按我定义的特定顺序对数组进行排序。
我已经开始构建一个函数来对这些数组进行排序,但我被卡住了,我不知道如何解决它。
我当前的代码:
public function order_spells($champions) {
foreach(array_keys($champions) as $champion){
if(isset($champions[$champion]['Passive']) || isset($champions[$champion]['Q']) || isset($champions[$champion]['W']) || isset($champions[$champion]['E']) || isset($champions[$champion]['R'])) {
foreach(array_keys($champions[$champion]) as $Spell_Icon) {
if($Spell_Icon!='General'){
//echo $Spell_Icon;
}
}
}
}
}
这是当前数组:
这是预期的输出:
由于我坚持使用上面的当前代码,我将尝试隔离并简化我的问题并将其展示给您。
作为一个简单的例子,我有一个这样的数组:
$champions = [
"A" => 1,
"C" => 2,
"F" => 3,
"B" => 4,
"G" => 5,
"D" => 6,
"E" => 7,
];
现在我想定义该数组的顺序,例如第一个键F,然后D 等等...我怎样才能更改我上面的代码以使其按我的意愿工作?或者我如何在这里订购这个示例数组?
这里要提到的另一个转折是,订单可能比数组本身包含更多的元素。例如
Order: C,D,A,B
Array: A,B,C
【问题讨论】:
-
很高兴您有权发布链接和图片。但请在您的问题中发布代码/输出。还向我们展示一些努力/尝试,以及您如何尝试解决问题。
-
从哪里得到这个数组?你是如何创建它的?
-
我已经添加了你们问的代码,通常当我这样做时,人们会指出代码中的小错误,让我找到解决实际问题的方法
-
改变你的选择,从那里你有数组,所以只要改变你想要的列顺序。
-
@Higeath 尝试类似:
$arr = array_pop($champion["Ashe"]); $champion["Ashe"] = ["E" => $arr] + $champion["Ashe"];
标签: php arrays multidimensional-array associative-array