2012-03-20 5 views
1

Мне нужен способ изменить порядок моих многомерных массивов. Есть ли для этого легкое решение? Я делал это с array_values ​​для одиночных массивов раньше, но не поддерживает многомерные массивы.PHP array_values ​​с многомерным массивом

Мой массив выглядит следующим образом

Array 
(
    [2] => Array 
     (
      [text] => test 
     ) 

    [5] => Array 
     (
      [text] => test 
     ) 

    [8] => Array 
     (
      [text] => test 
     ) 

) 

Я хотел бы, чтобы это было

Array 
(
    [0] => Array 
     (
      [text] => test 
     ) 

    [1] => Array 
     (
      [text] => test 
     ) 

    [2] => Array 
     (
      [text] => test 
     ) 

) 
+0

Если я это правильно понял, вы хотите отсортировать его по ключевым словам, не так ли? Не удалить ключи массива? Или вы сортируете по отдельным «текстовым» элементам? – pp19dd

+0

Возможный повтор? [Как вы переиндексируете массив в PHP] (http://stackoverflow.com/questions/591094/how-do-you-reindex-an-array-in-php) – mseancole

+0

Возможный дубликат [Array \ _values ​​из многомерного массива ] (http://stackoverflow.com/questions/9694072/array-values-from-multidimensional-array) – azerafati

ответ

0

Использование ksort функция

+1

Хотя это теоретически может ответить на вопрос, [было бы предпочтительнее] (http://meta.stackexchange.com/ q/8259), чтобы включить здесь основные части ответа и предоставить ссылку для справки. –

0

Я боюсь, что вы используете array_values() неправильный путь. Попробуйте:

$yourArray = array_values($yourArray); 
0

Я думаю, вам нужно следующее:

$results = $your_array; 
$tmp = array(); 
foreach ($result as $r) 
{ 
    $tmp[]=$r; 
} 
$results= $tmp; 

Успехов,

+1

Это точно 'array_values ​​()'. –

+1

Мне нравится писать функции, но вы правы. –

2

array_values работы отлично для меня, производя именно то, что вы хотите.

Хотя это немного сложно сказать, потому что все ваши элементы массива идентичны, но убедитесь, что вы правильно назначили возвращаемое значение array_values вашей новой переменной.

+0

Да, конечно, как работает array_values –

0

Вы можете использовать usort с пользовательским обратным вызовом, который всегда возвращает 0, что не будет изменять порядок массива.

usort($array, function($a, $b) { return 0; }); 
Смежные вопросы