2016-11-24 72 views
-2

我有一个多维数组如下重新排列数组索引

Array 
    (
     [0] => attributewidget Object 
      (
       [_child] => Array 
        (
        ) 

       [_parent] => 
       [_oid] => a_1 
       [_errorMsg] => 
       [_debugTraceFunc] => 
       [classname] => AttributeWidget 
       [version] => 1.0.0.0 
       [attributeName] => 
       [comparableProperties] => Array 
        (
         [0] => abbreviation 
         [1] => attributeName 
         [2] => classname 
         [3] => conditionRef 
        ) 

      ) 

     [1] => Array 
      (
       [0] => attributewidget Object 
        (
         [_child] => Array 
          (
          ) 

         [_parent] => 
         [_oid] => a_2 
         [_errorMsg] => 
         [_debugTraceFunc] => 
         [classname] => AttributeWidget 
         [version] => 1.0.0.0 
         [attributeName] => 
         [comparableProperties] => Array 
          (
           [0] => abbreviation 
           [1] => attributeName 
           [2] => classname 
           [3] => conditionRef 
          ) 

        ) 

      ) 
     [2] => Array 
     (
      [0] => attributewidget Object 
       (
        [_child] => Array 
         (
         ) 

        [_parent] => 
        [_oid] => a_3 
        [_errorMsg] => 
        [_debugTraceFunc] => 
        [classname] => AttributeWidget 
        [version] => 1.0.0.0 
        [attributeName] => cp1 
        [comparableProperties] => Array 
         (
          [0] => abbreviation 
          [1] => attributeName 
          [2] => classname 
          [3] => conditionRef 
         ) 

       ) 

     ) 
    ) 

我理想想删除[1] =>数组[2] =>数组和重新排列的索引。 有没有一种方法可以让索引重新排列如下。

Array 
    (
     [0] => attributewidget Object 
      (
       [_child] => Array 
        (
        ) 

       [_parent] => 
       [_oid] => a_1 
       [_errorMsg] => 
       [_debugTraceFunc] => 
       [classname] => AttributeWidget 
       [version] => 1.0.0.0 
       [attributeName] => 
       [comparableProperties] => Array 
        (
         [0] => abbreviation 
         [1] => attributeName 
         [2] => classname 
         [3] => conditionRef 
        ) 

      ) 

       [1] => attributewidget Object 
        (
         [_child] => Array 
          (
          ) 

         [_parent] => 
         [_oid] => a_2 
         [_errorMsg] => 
         [_debugTraceFunc] => 
         [classname] => AttributeWidget 
         [version] => 1.0.0.0 
         [attributeName] => Name? 
         [comparableProperties] => Array 
          (
           [0] => abbreviation 
           [1] => attributeName 
           [2] => classname 
           [3] => conditionRef 
          ) 

        ) 



      [2] => attributewidget Object 
       (
        [_child] => Array 
         (
         ) 

        [_parent] => 
        [_oid] => a_3 
        [_errorMsg] => 
        [_debugTraceFunc] => 
        [classname] => AttributeWidget 
        [version] => 1.0.0.0 
        [attributeName] => cp1 
        [comparableProperties] => Array 
         (
          [0] => abbreviation 
          [1] => attributeName 
          [2] => classname 
          [3] => conditionRef 
         ) 

       ) 


    ) 
+2

这个数组是如何创建得如此不一致?为什么'[0]'直接指向一个对象,但是'[1]'和'[2]'中有一个额外的数组?也许你应该修复创建数组的代码,所以它不会这样做。 – Barmar

+0

临发布提示:[避免请求志愿者紧急](http://meta.stackoverflow.com/q/326569)。 – halfer

回答

2

循环遍历数组,并用第一个元素替换嵌套数组中的任何元素,以删除额外的间接级别。

foreach ($array as &$element) { 
    if (is_array($element) { 
     $element = $element[0]; 
    } 
}