2015-10-15 104 views
1

的第一个关键我从我的数据库这样的数组:删除多维数组

Array 
(
    [0] => Array 
     (
      [A] => Array 
       (
        [0] => A 
        [1] => 0 
        [2] => 0 
        [3] => 0 
       ) 

     ) 

    [1] => Array 
     (
      [C] => Array 
       (
        [0] => C 
        [1] => 6.9167 
        [2] => 0 
        [3] => 0 
       ) 

     ) 

    [2] => Array 
     (
      [D] => Array 
       (
        [0] => D 
        [1] => 6.9167 
        [2] => 0 
        [3] => 0 
       ) 

     ) 

) 

如何从这个多维数组中删除第一个关键([0] => A, [0] => C, [0] => D)

这是我所期望的阵列的输出:

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

      ) 

     [1] => Array 
      (
       [C] => Array 
        (
         [0] => 6.9167 
         [1] => 0 
         [2] => 0 
        ) 

      ) 

     [2] => Array 
      (
       [D] => Array 
        (
         [0] => 6.9167 
         [1] => 0 
         [2] => 0 
        ) 

      ) 

    ) 
+0

uncelar期望的输出是什么 – 2015-10-15 20:58:41

+0

你说的数据是从一个数据库,只是不要选择它以 – 2015-10-15 21:03:12

+0

开始,因为某些原因我必须选择它 – Simba

回答

1

在它的最简单的(我没有时间用于非一环):

foreach($array as $k1 => $inner) { 
    foreach($inner as $k2 => $value) { 
     unset($array[$k1][$k2][0]); 
    } 
} 
+0

谢谢@AbraCadaver。它工作和简单。 – Simba

0

这是可怕的,但应该工作为你。它采用了2级密钥作为元素的值来删除一个新的水平

$array = array(
    array('A' => array('A', 100, 200)), 
    array('B' => array('B', 100, 200)), 
); 

foreach($array as $key => $subarray){ 
    foreach($subarray as $letter_key => $target_array){ 
     $index_to_delete = array_search($letter_key, $target_array); 
     unset($array[$key][$letter_key][$index_to_delete]); 
    } 
} 

print_r($array); 
0

使用unset

$array = array(
    array(
     'A' => array(
      'A', 0, 0, 0 
     ) 
    ), 
    array(
     'C' => array(
      'C', 0, 0, 0 
     ) 
    ) 
); 


foreach ($array as $key => $value) { 
    $erase = key($value); 
    unset($array[$key][$erase][0]); 
    // this resets the ordinal sequence from 1,2,3 to 0,1,2 
    $a[$key][$erase] = array_values($array[$key][$erase]); 
}