Возможный дубликат:
Как отсортировать многомерный массив в php
У меня есть массив значений и вы хотите сортировать значение, основанное на алфавитном порядке
мой текущий массив
$original_array = array( array('id' => 123456, 'name'=>michael), array('id' => 222222, 'name'=>harolds), array('id' => 1111111, 'name'=>albert) );
поэтому результат, который я ищу, после сортировки массива, как показано ниже
$original_array = array( array('id' => 1111111, 'name' => albert), array('id' => 222222, 'name' => harolds), array('id' => 123456, 'name' => michael) );
Это тот тип, который используется для функции usort () :
$original_array = array(array('id'=>123456,'name'=>'michael'),array('id'=>222222,'name'=>'harold'),array('id'=>1111111,'name'=>'albert')); function alphasort($a, $b) { if ($a['name'] == $b['name']) { return 0; } return ($a['name'] < $b['name']) ? -1 : 1; } usort ($original_array,'alphasort'); var_dump($original_array);
Вы можете попробовать следующий путь.
$original_array = array( array('id'=>123456,'name'=>'michael'), array('id'=>222222,'name'=>'harolds'), array('id'=>1111111,'name'=>'albert') ); foreach ($original_array as $key => $row) { $volume[$key] = $row['id']; $edition[$key] = $row['name']; } array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $original_array);
Прасад.
Это очень просто, просто сделайте это так:
$array = array( array( 'id' => 123456, 'name' => michael ), array( 'id' => 222222, 'name' => harolds ), array( 'id' => 1111111, 'name' => albert ) ); usort( $array, function( $a, $b ) { return strcmp( $a['name'], $b['name'] ); } );
и вы получите то, что вам нужно! Если ваша версия php равна 5.2.x или меньше, сделайте это следующим образом:
$array = array( array( 'id' => 123456, 'name' => michael ), array( 'id' => 222222, 'name' => harolds ), array( 'id' => 1111111, 'name' => albert ) ); function mysort_func_531994( $a, $b ) { return strcmp( $a['name'], $b['name'] ); } usort( $array, 'mysort_func_531994' );
Прочтите руководство по следующим функциям: