私は、 "1-3,4,5,6-10,12-15"などの値を持つ列 'pages'を持っています。私は配列を並べ替えたいと思います。CakePHPのVirtual Propertyで配列を並べる方法はありますか?
結果は正しくありません: "12-15、1-3、4、5、6-10"。
だから、私はつもりはこのように仮想プロパティを作成してい考え出し:
protected $_virtual = ['proper_order'];
protected function _getProperOrder()
{
return intval(strtok($this->_properties['pages'], '-'));
}
しかし、すべての仮想プロパティを使用して配列をソートする方法はありますか?
2つのオプションがあります。まず、dbから配列へのすべての結果を取得して並べ替えます。ここで 'usort'とあなたの' - > properOrder'フィールドを使用できます。 2番目は、 'substr'、' pos'のような文字列関数を使ってdbレベルでソートすることです。最初の数字を切り捨てます。 – teran