2015-03-04 4 views
0

После прохождения подобных вопросов я не смог найти соответствующий сценарий. У меня есть $ artists_temp массив какпреобразование многомерного массива в один размерный массив php

Array 
(
    [0] => Array 
     (
      [ID] => 109 
      [post_title] => Junoon 
     ) 

    [1] => Array 
     (
      [ID] => 135 
      [post_title] => Linkin Park 
     ) 

) 

я сделал с кодом, чтобы сделать массив как

Array 
(
    [109] => Junoon 
    [Junoon] => 
    [135] => Linkin Park 
    [Linkin Park] => 
) 

Что требуется как

Array 
(
    [109] => Junoon 
    [135] => Linkin Park 
) 

Вот код

$artists_temp = $wpdb->get_results($query, ARRAY_A); 
$artists = array(); 
foreach ($artists_temp as $key => $value) { 
    foreach ($value as $k => $v) { 
     $artists[$v] = next($value); 
     //unset(next($value)) This doesn't work. 
    } 
} 
print_r($artists); 
+1

Вы может добавить 'break;' в строке после '$ artist [$ v] ='. – cpilko

+0

@cpilko Спасибо, человек, который сделал работу! –

ответ

1

Вы также можете сделать

$artists = array(); 

foreach ($artists_temp as $array) { 
    $artists[$array['ID']] = $array['post_title']; 
} 
+0

Не могу подождать 1 минуту, чтобы принять это :) Работает как шарм –

+0

Рад, что я могу быть полезным! :) – kidA

2

PHP> = 5.5.0, необходимое для array_column() или использовать PHP Implementation of array_column():

$artists = array_column($artists_temp, 'post_title', 'ID'); 

Поскольку вы используете WordPress проверить: wp_list_pluck():

$artists = wp_list_pluck($artists_temp, 'post_title', 'ID'); 
+0

Это действительно информативно. Но поскольку я создаю плагин wordpress, не у всех пользователей есть 5,5 –

+1

Я ненавижу WordPress, но быстрый поиск появился http://codex.wordpress.org/Function_Reference/wp_list_pluck – AbraCadaver

+0

принял нижеследующий ответ, но спасибо, что поделился приятной функцией array_column так круто! –

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