2013-03-03 20 views
1

我正在寻找一个php函数,它将查找数组类对象值'FIND_ME'并将其作为第一个数组键(如果它存在)交换。查找数组类对象值 - 如果存在:将其作为第一个数组键移动

这里是我当前的阵列输出:

Array ( 
     [0] => stdClass Object ([id] => 1 [uid] => 52 [type] => A_TEST [title] => TITLE [value] => 1) 
     [1] => stdClass Object ([id] => 2 [uid] => 52 [type] => TEST [title] => TITLE [value] => 1) 
     [2] => stdClass Object ([id] => 3 [uid] => 52 [type] => FIND_ME [title] => TITLE [value] => 1) 
    ) 

这里是我需要的结果:

Array ( 
     [0] => stdClass Object ([id] => 3 [uid] => 52 [type] => FIND_ME [title] => TITLE [value] => 1) 
     [1] => stdClass Object ([id] => 2 [uid] => 52 [type] => TEST [title] => TITLE [value] => 1) 
     [2] => stdClass Object ([id] => 1 [uid] => 52 [type] => A_TEST [title] => TITLE [value] => 1) 
    ) 

结果:数组[2]变了,变得阵列,因为type => FIND_ME被发现[0]在数组中。

注意:我不关心别人按键的顺序。

有什么想法?

编辑:好吧,我设法找到使用的foreach()的type => FIND_ME关键数字:

foreach($array as $key => $value) { 
     if ($value->type == 'FIND_ME') { 
      $found = $key; 
      break; 
     } 
    } 

但如何将其交换作为数组的第一个关键?

+0

排序后,其他元素排序的顺序是否重要? – leftclickben 2013-03-03 06:52:48

+0

不,没关系,我只是希望值'FIND_ME'获得关键[0] – hawkidoki 2013-03-03 06:57:58

回答

2
$found = $others = array(); 
foreach($array as $key => $value) { 
    if ($value->type == 'FIND_ME') { 
     $found[] = $value; 
    }else{ 
     $others[] = $value; 
    } 
} 
$array = array_merge($found,$others); 
+0

太棒了! Works Perfeclty。认为你;) – hawkidoki 2013-03-03 07:25:31

相关问题