2013-03-07 34 views
0

這是我的數組PHP把這個數組轉換成整數系列

[["1"],["1"],["1"],["1"],["1"],["1"],["1"],["1"],["1"],["1"],["1"],["1"],["1"],["1"]]

的輸出,但我想這看起來像

[1,1,1,1,1,1,1]

怎麼會變成這樣在PHP實現,看起來我所做的每件事都會放到數組中的一個對象中,當我不需要時。我嘗試使用array_values,它成功地只有返回值,因爲我也有原來的鍵,但是這仍然不是完全理想的結果

+0

可能重複:http://stackoverflow.com/questions/526556/how-在PHP中使用多維陣列到簡單的一維 – mkaatman 2013-03-07 16:22:21

回答

1
$yourArray = [["1"],["1"],["1"],["1"],["1"],["1"],["1"],["1"],["1"],["1"],["1"],["1"],["1"],["1"]]; 

使用下面的代碼在PHP 5.3+

$newArray = array_map(function($v) { 
    return (int)$v[0]; 
}, $yourArray); 

,或者使用下面的其他版本的PHP代碼

function covertArray($v) { 
    return (int)$v[0]; 
} 

$newArray = array_map('covertArray', $yourArray) 
+0

我不能使用php 5.2做匿名函數,因爲服務器正在使用它 – CQM 2013-03-07 16:34:35

+0

我將其更改爲命名函數。 – hfcorriez 2013-03-07 16:38:27

0

你總是可以做一個簡單的循環...

$newArray = array(); 

// Assuming $myArray contains your multidimensional array 
foreach($myArray as $value) 
{ 
    $newArray[] = $value[0]; 
} 

你可以牛肉起來了一點,這樣做避免不良指標:

if(isset($value[0])) { 
     $newArray[] = $value[0]; 
    } 

或者只是使用的許多陣列功能之一來獲取值,如array_pop()array_slice()end()