2012-02-14 2 views
0

У меня есть 2D-массив и вы хотите получить все значения, которые в одном индексе говорят по индексу «1». каков наилучший способ получить это как новый массив.получить значения по одному и тому же индексу в PHP

Пример: у нас есть array(array(1,2,3), array(5,6,7)), результат должен быть array(2, 6).

Благодаря

+0

Я искал оптимизированное решение, например, используя функцию array_map или что-то в этом роде .... – Dev

ответ

7

Простая функция будет делать трюк:

function foobar($array, $index) { 
    $result = array(); 
    foreach($array as $subarray) { 
     if(isset($subarray[$index])) { 
      $result[] = $subarray[$index]; 
     } 
    } 
    return $result; 
} 

Или вы можете просто использовать array_map (требуется PHP 5.3):

array_map(function($array) { return $array[1]; }, $input); 
+1

+1 для использования array_map. Благодарю. – Dev

1
$input = array(
    array(1,2,3), 
    array(5,6,7) 
); 

$output = array(); 
foreach ($input as $data) { 
    $output[] = $data[1]; 
} 
0
$myarray=array(array(1,2,3), array(5,6,7)); 
$index=1; 

$result=array(); 
foreach($myarray as $a) $result[]=$a[$index]; 

print_r($result); 
2
$sample = array(array(1,2,3), 
       array(4,5,6), 
       array(7,8,9) 
       ); 
$index = 1; 
$result = array_map(function($value) use($index) { return $value[$index]; }, $sample); 
var_dump($result); 
Смежные вопросы