2016-08-01 25 views
-1

的數據排序是不正確的,看起來像排序LONGTEXT在Zend的framwork INT

0 
1 
10 
11 2 
20 21 
3 

這裏是我的命令代碼

$select->order('post_meta.meta_value AS int desc'); 

注意meta_value場LONGTEXT而不是整數,不能改變它修復這個問題需要另一個修復。

+0

好了,你可以添加一個排序列或在PHP排序。 – KiwiJuicer

+0

如何在php –

回答

0

好了,根據您的評論的問題如何解決這在PHP中,我能想到的是這樣的:

<?php 

$stringArray = [0, '1', 10, '11 2', '20 21', 3]; 

usort($stringArray, function($a, $b) { 

    $a = (int)trim(preg_replace('/\s+/', '', $a)); 
    $b = (int)trim(preg_replace('/\s+/', '', $b)); 

    if ($a === $b) { 
     return 0; 
    } 
    return ($a > $b) ? -1 : 1; 
}); 

var_dump($stringArray); 
?> 
+0

中對它進行排序嘿@Michael Shams,它工作嗎? – KiwiJuicer