2017-07-17 50 views
1

下面我給了一個數組...PHP數組合並,刪除[U]

Array 
(
[0] => Array 
    (
     [u] => Array 
      (
       [id] => 396 
       [first_name] => Gyan 
       [last_name] => sharma 
       [email] => [email protected] 
       [phone_number] => 
      ) 

    ) 

[1] => Array 
    (
     [u] => Array 
      (
       [id] => 589 
       [first_name] => deep 
       [last_name] => sharma 
       [email] => [email protected] 
       [phone_number] => 
      ) 

    ) 
) 

我只是想刪除[U]從每個數組,數組一樣下面給出。

Array 
(
[0] => Array 
    (
     [id] => 396 
     [first_name] => Gyan 
     [last_name] => sharma 
     [email] => [email protected] 
     [phone_number] => 


    ) 

[1] => Array 
    (
     [id] => 589 
     [first_name] => deep 
     [last_name] => sharma 
     [email] => [email protected] 
     [phone_number] => 

    ) 
) 

我可以foreach()循環做到這一點,但它是漫長的過程..

誰能告訴我這個最短路徑。

幫幫我。

在此先感謝。

+0

冗長?這是一個單一的任務。 –

+0

先生......如果在數組中有一千行,會怎麼樣.. – GYaN

+1

使用'array_column()' –

回答

0

您可以使用此array_maparray_shift

$a[0]['u']['name'] = "a"; 
$a[0]['u']['id'] = "a"; 

$a[1]['u']['name'] = "a"; 
$a[1]['u']['id'] = "a"; 



$a = array_map('array_shift', $a); 
print_r($a,1); 

這裏是working example

+0

聰明,儘管這假定'u'是子列表中唯一的條目。 –

+0

是的......它只是轉移'u'指數 –

+0

它改變了第一個指數。在問'u'是唯一的問題,但讀者需要了解代碼的侷限性。 –

3

沒有的foreach:

$new_array = array_map(function($element){ 
    return $element['u']; 
},$old_array); 

var_dump($new_array); 

用foreach:

$new_array = []; 
    foreach($old_array as $value){ 
    $new_array[] = $value['u'] 
    } 

    var_dump($new_array) 

$old_array是您的陣列和$new_array是數組你想

+0

仔細閱讀問題... – GYaN

+1

@GyandeepSharma:對我來說看起來沒問題。它出什麼問題了? –

+0

array_column()這是我想要的....感謝@alivetodie – GYaN