tôi có các mảng sau:Sắp xếp mảng sử dụng array_multisort
$array = array(
'note' => array(),
'year' => array('2011','2010', '2012'),
'type' => array('conference', 'journal', 'conference'),
);
Và tôi sử dụng các chức năng sau đây để sắp xếp mảng bằng cách sử dụng các loại thực địa và mảng khác:
function array_multisort_by_order(array $array, $by, array $order)
{
$order = array_flip($order);
$params[] = $array[$by];
foreach($params[0] as &$v) $v = $order[$v];
foreach($array as &$v) $params[] = &$v; unset($v);
call_user_func_array('array_multisort', $params);
return $array;
}
Khi tôi gọi như sau chức năng tôi nhận được lỗi sau:
$array = array_multisort_by_order($array, 'type', array('conference', 'journal'));
print_r($array['type']);
lỗi:
Warning: array_multisort(): Array sizes are inconsistent.
Tôi biết rằng các mảng không nhất quán. Có một chức năng tốt hơn để sử dụng?
Vui lòng kiểm tra: codepad
Output mong muốn:
Array
(
[note] => Array
(
[0] =>
[1] =>
[2] =>
)
[year] => Array
(
[0] => 2011
[1] => 2012
[2] => 2010
)
[type] => Array
(
[0] => conference
[1] => conference
[2] => journal
)
)
Ví dụ 2:
Mảng
$array = array(
'note' => array([0]=>'test1', [1]=>'test2'),
'year' => array([0]=>'2011', [2]=>'2012'),
'type' => array([0]=>'conference',[1]=>'journal', [2]=>'conference'),
);
mong muốn Kết quả 2
Array
(
[note] => Array
(
[0] => test1
[1] =>
[2] => tes2
)
[year] => Array
(
[0] => 2011
[1] => 2012
[2] =>
)
[type] => Array
(
[0] => conference
[1] => conference
[2] => journal
)
)
Cảm ơn
Hm, đầu ra mong muốn sẽ làm cho mọi việc rõ ràng hơn sau đó quessing nó từ mã. Bạn có thể cung cấp điều đó không? – Wrikken
đã thêm đầu ra mong muốn! – glarkou
OK, còn lại 1 câu hỏi: các subrays luôn rỗng hoặc có độ dài nhất quán, hoặc chúng ta có thể mong đợi một subarray với 2 mục ở đây, và nếu vậy, làm thế nào để chúng ta đối phó với điều đó? Giả sử họ vẫn phù hợp với 2 mục đầu tiên từ các subarrays khác? – Wrikken