2013-03-07 1 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- to-flatten-a-multi-dimension-array-to-simple-one-in-php – mkaatman

ответ

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

+0

. Я меняю его на функцию именования. – hfcorriez

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() и т.д.

Смежные вопросы