Array (
[ssss] => jfsjhfh
[bbbb] => jfdhjh
[cccc] => 32487
[uuuu] => 847738
[jjjj] => 84783
[oooo] => Array (
[llll] => 131
[oooo] => 83748
[aaaa] => 9289
[ffff] => 2873 )
[eeee] => Array (
[0] => eeee Object (
[nnnn] => isjfi
[ssss] => dhshjhhd
[mmmm] => dksjdk
[iiii] => disj
[aaaa] => dksjdik
)
)
)
以上有一json数组(里面包含一对象),如何根据键名的首字符进行排序。
实现效果如下。
Array (
[bbbb] => jfdhjh
[cccc] => 32487
[eeee] => Array (
[0] => eeee Object (
[aaaa] => dksjdik
[iiii] => disj
[mmmm] => dksjdk
[nnnn] => isjfi
[ssss] => dhshjhhd
)
)
[jjjj] => 84783
[oooo] => Array (
[aaaa] => 9289
[ffff] => 2873
[llll] => 131
[oooo] => 83748
)
[ssss] => jfsjhfh
[uuuu] => 847738
)
求各位打算指教,万分感谢,用PHP语言编写。
主要难点求解Object 如何排序。
[ssss] => jfsjhfh
[bbbb] => jfdhjh
[cccc] => 32487
[uuuu] => 847738
[jjjj] => 84783
[oooo] => Array (
[llll] => 131
[oooo] => 83748
[aaaa] => 9289
[ffff] => 2873 )
[eeee] => Array (
[0] => eeee Object (
[nnnn] => isjfi
[ssss] => dhshjhhd
[mmmm] => dksjdk
[iiii] => disj
[aaaa] => dksjdik
)
)
)
以上有一json数组(里面包含一对象),如何根据键名的首字符进行排序。
实现效果如下。
Array (
[bbbb] => jfdhjh
[cccc] => 32487
[eeee] => Array (
[0] => eeee Object (
[aaaa] => dksjdik
[iiii] => disj
[mmmm] => dksjdk
[nnnn] => isjfi
[ssss] => dhshjhhd
)
)
[jjjj] => 84783
[oooo] => Array (
[aaaa] => 9289
[ffff] => 2873
[llll] => 131
[oooo] => 83748
)
[ssss] => jfsjhfh
[uuuu] => 847738
)
求各位打算指教,万分感谢,用PHP语言编写。
主要难点求解Object 如何排序。
2、json 不包含类定义信息,所以 php 只能解码出 stdClass Object,而不是 eeee Object
var $c = 1;
var $b = 2;
var $a = 3;
}$p = new T;
print_r($p);settype($p, 'array');
ksort($p);
settype($p, 'object');
print_r($p); T Object
(
[c] => 1
[b] => 2
[a] => 3
)
stdClass Object
(
[a] => 3
[b] => 2
[c] => 1
)
可见,排序是可以的,但是没有意义的
public $nnnn = 'isjfi';
public $ssss = 'dhshjhhd';
public $mmmm = 'dksjdk';
public $iiii = 'disj';
public $aaaa = 'dksjdik';
}$arr = Array(
'ssss' => 'jfsjhfh',
'bbbb' => 'jfdhjh ',
'cccc' => 32487 ,
'uuuu' => 847738,
'jjjj' => 84783,
'oooo' => Array(
'llll' => 131,
'oooo' => 83748 ,
'aaaa' => 9289 ,
'ffff' => 2873 ,
),
'eeee' => Array (new eeee()),
);array_walk($arr,function(&$v){
if(is_array($v)){
array_walk_recursive($v,function(&$v1){
if(is_object($v1)){
$v1 = get_object_vars($v1);
ksort($v1);
}
});
ksort($v);
}
});ksort($arr);echo "<pre>";
print_r($arr);
echo "</pre>";