我想对一个多维数组进行排序,它将字符串作为键,将对象作为值。
目前,这是我的排序代码:
$order = $name = Array();
foreach(get_declared_classes() as $class){
if(get_parent_class($class) == "PaymentGateway"){
$this->gateways[$class::$shortName] = new $class($language);
if($this->gateways[$class::$shortName]->isActive())
$order[$class::$shortName] = intval($this->gateways[$class::$shortName]->getSettings()['order']);
else
$order[$class::$shortName] = 1000;
$name[$class::$shortName] = $this->gateways[$class::$shortName]->getLang('name');
}
}
array_multisort($this->gateways, SORT_ASC, $order, SORT_ASC, $name);
如您所见,$this->gateways
,$order
和$name
的键是相同的。但它不起作用。有人看到了这个错误吗?
调试信息:
$名称的
array(6) {
["barzahlen"]=> string(9) "Barzahlen"
["bitcoin"]=> string(7) "Bitcoin"
["paypal"]=> string(6) "PayPal"
["sofort"]=> string(23) "Sofort-Überweisung"
["stripe"]=> string(6) "Stripe"
["transfer"]=> string(16) "Überweisung"
}
$顺序
array(6) {
["barzahlen"]=> int(4)
["bitcoin"]=> int(5)
["paypal"]=> int(1)
["sofort"]=> int(2)
["stripe"]=> int(3)
["transfer"]=> int(0)
}
$这 - >网关
长,和以前一样......