2014-12-18 2 views
-2

У меня есть массив, который выглядит следующим образом:массив формата преобразования в PHP

Array ([0] => Array ([id] => 0) [1] => Array ([id] => 0) [2] => Array ([id] => 0) [3] => Array ([id] => 0) [4] => Array ([id] => 0) [5] => Array ([id] => 0) [6] => Array ([id] => 0) [7] => Array ([id] => 0) [8] => Array ([id] => 0) [9] => Array ([id] => 0) [10] => Array ([id] => 0) [11] => Array ([id] => 4) [12] => Array ([id] => 1) [13] => Array ([id] => 2) [14] => Array ([id] => 0) [15] => Array ([id] => 0) [16] => Array ([id] => 5) [17] => Array ([id] => 1)) 

, и я хотел бы, чтобы преобразовать его в следующем формате:

[0,0,0,0,0,0,0,0,0,0,0,4,1,2,0,0,5,1] 

Как я могу добиться этого преобразование с использованием php?

Вся помощь приветствуется.

+1

Вы хотите получить доступ к массиву с этим, или вы хотите, чтобы вывод, что это? – Rizier123

ответ

1

Простейший способ: (при условии, что вы хотите на самом деле вывести строку [5,6,...,2]

<?php 
$ids=array(); 
foreach($yourArray as $k=>$v){ 
    $ids[] = $v['id']; 
} 
$resultCsv = implode(',', $ids); 
$result = '['.$resultCsv.']'; 
echo $result 
?> 
1

Вы можете использовать array_map или array_walk:

С array_map:

$new = array_map(function ($value) { return $value['id']; }, $theArray); 
print_r($new); 

С array_walk:

array_walk($theArray, function (&$value, $key) { $value = $value['id']; }; 
print_r($theArray); 

Основные различия между этими является то, что array_map производит совершенно новый массив, и вы не получите ключ, переданный функции обратного вызова. array_walk, с другой стороны, работает с массивом по ссылке и обратный вызов также получает ключ.

Теперь его неясно, хотите ли вы реструктурировать массив (как я представил решения для), или если вы хотите его в определенном строчном формате, например, [0,1,2,3,...]. Если вы действительно хотели его в формате строки все, что вам нужно сделать сейчас, это вызов json_encode на нем:

// note if you used array_map pass the variable that holds the result of the call 
// (in my example that would be $new); If you used array_walk then pass the same array 
// you supplied as the argument to the call (in my exmaple that would be $theArray) 

$arrString = json_encode($theArray); 
1

Вы можете обрабатывать каждый элемент массива и добавить член «идентификатор» каждый обрабатываемый в настоящий момент к югу от массива в новый массив:

<?php 
    // code 
    foreach $array as $member { 
     $newarray[]=$member["id"]; 
    } 
    // code 
?> 
Смежные вопросы