2013-03-31 4 views
2

У меня есть следующий массив:Создать массив из многомерного массива

array (size=2) 
    0 => 
    array (size=4) 
     0 => string 'http://localhost/wp/wp-content/uploads/2013/03/slider-area.jpg' (length=62) 
     1 => int 1584 
     2 => int 346 
     3 => boolean false 
    1 => 
    array (size=4) 
     0 => string 'http://localhost/wp/wp-content/uploads/2013/03/featured.jpg' (length=59) 
     1 => int 1584 
     2 => int 346 
     3 => boolean false 

Мой вопрос заключается в том, что как я могу перебрать этот массив, чтобы создать новый массив, который содержит только два значения следующим образом:

$result_array = array(0 => "http://localhost/wp/wp-content/uploads/2013/03/slider-area.jpg", 
         1 => "http://localhost/wp/wp-content/uploads/2013/03/featured.jpg"); 

Я пробовал цикл foreach, но не смог получить требуемый массив результатов. Я пробовал следующий цикл:

foreach ($array as $key => $value){ 

foreach ($value as $item){ 

$result_array[] = $item; 

} 

Любая помощь будет высоко оценена.

ответ

1

Вы были близки:

$result_array = array(); //Initialization is important. 

foreach ($array as $value) { 
    $result_array[] = $value[0]; // $value[0] is the first element in the inner array. 
} 
+0

Большое спасибо дружище! – Mark

1

Это должно быть так же просто, как это:

$finalArray = array();  
foreach($array as $arrayitem){ 
    $finalArray[] = $arrayItem[0]; 
} 
1

Чтобы сделать это с Еогеасп:

foreach($array as $key => $value) { 
    $result_array[$key] = $value[0]; 
} 

(не используйте Еогеасп внутри foreach, если вы не хотите итерации через 2 измерения!)

+0

Глядя на другие ответы, которые используют '[]', они не всегда будут давать вам значения в том же порядке. Этот метод использует старый ключ в новом массиве, поэтому они гарантированно будут соответствовать. – Dave

0

Я просто бросить это довольно мало Однострочник здесь для удовольствия :)

$newArray = array_map(function($a){ return $a[0]; }, $myArray); 

run code