2017-04-06 13 views
0

特定の優先順位(特殊文字>数字>小文字>大文字)でキー値のペアを持つjson配列をソートする必要があります。私はASCIIコードで試しましたが、期待どおりに取得できませんでした。jsonソートの優先順位でphp usort()

$arr1 = array (
    0 => 
    array (
    'id' => 1, 
    'name' => 'B', 
    'value' => 'abc', 
    'order' => 6, 
), 
    1 => 
    array (
    'id' => 2, 
    'name' => 'a', 
    'value' => 'xyz', 
    'order' => 2, 
), 
    2 => 
    array (
    'id' => 3, 
    'name' => 'A', 
    'value' => 'ghi', 
    'order' => 1, 
), 
    3 => 
    array (
    'id' => 4, 
    'name' => '123', 
    'value' => 'xyz', 
    'order' => 2, 
), 
    4 => 
    array (
    'id' => 5, 
    'name' => 'd', 
    'value' => 'uvw', 
    'order' => 3, 
), 
    5 => 
    array (
    'id' => 6, 
    'name' => '@2', 
    'value' => 'def', 
    'order' => 3, 
), 
); 
function cmp($a, $b) 
{ 
    $at = iconv('UTF-8', 'ASCII//TRANSLIT', $a['name']); 
    $bt = iconv('UTF-8', 'ASCII//TRANSLIT', $b['name']); 
    return strcmp($at, $bt); 
} 
usort($arr1, "cmp"); 
print_r($arr1); 

誰でも問題を解決する手助けはできますか?

答えて

0
<?php 
// Obtain a list of columns 
foreach ($arr1 as $key => $row) { 
    $arr1[$key] = $row['value']; 
} 

ksort($ arr1); ?>

+0

私の優先順位に従ってソートしないようにしました。 – Indhu

+0

@Indhu私の答えの更新を確認してください –

+0

それは動作しません。 – Indhu

関連する問題