2011-07-24 65 views
-1

后,我有两个数组,排序stdClass的对象数组

Array 
(
    [0] => stdClass Object 
     (
      [id] => 1 
      [title] => art 
     ) 
    [1] => stdClass Object 
     (
      [id] => 4 
      [title] => adsdf 
     ) 
    [2] => stdClass Object 
     (
      [id] => 2 
      [title] => adsdf 
     ) 
    [3] => stdClass Object 
     (
      [id] => 7 
      [title] => adsdf 
     ) 

) 
Array 
(
    [2] => 2 
    [1] => 1 
) 

我想第二阵列后的第一个数组进行排序。在第二个数组中,键和值与第一个数组ID相等。所以输出必须如下。

Array 
(
    [0] => stdClass Object 
     (
      [id] => 2 
      [title] => adsdf 
     ) 
    [1] => stdClass Object 
     (
      [id] => 1 
      [title] => art 
     ) 
    [2] => stdClass Object 
     (
      [id] => 4 
      [title] => adsdf 
     ) 
    [3] => stdClass Object 
     (
      [id] => 7 
      [title] => adsdf 
     ) 

) 

回答

2

可以使用array_multisort[Docs]它:

array_multisort($arraySort, $arrayData); 

传递与排序顺序为第一,你的阵列的要排序的数组作为第二个参数。

您可能需要在它之前构建排序数组,从您的问题中可以看出,如果您已经拥有该数组,那么它不是很清楚。

万一不行,如果你想获得的所有数据阵列的条目ID值插入排序数组:

$arraySort = array(); 
foreach($arrayData as $key => $obj) 
{ 
    $arraySort[$key] = $obj->id; 
}