2011-12-21 13 views
2

可能性の重複:
How do I sort a multidimensional array in 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) 
    ); 

答えて

5

これは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); 
+0

Wowwのおかげ超高速返信メイトのために...実際に私は1位でusortを実行していますが、2番目のパラメータで関数を渡すことはありません...私の悪い...とにかくおかげです。 – user637852

+0

@ user637852 - あなたは彼に信用を与えるためにこの答えを受け入れるべきです。 :) –

0

あなたは以下の方法で試すことができます。

$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); 

プラサド。

0

それはちょうどこのようにそれを行う、非常に簡単です:

$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'); 

読むマニュアルを以下の機能のために:

  1. usort機能
  2. strcmp機能