2016-05-02 8 views
-3

がplanning_noフィールドでダッシュを含む番号をソートする方法は?配列以下

Array 
     (
      [0] => stdClass Object 
       (
        [planning_no] => 100-3 
        [pieces] => 0 
       ) 

      [1] => stdClass Object 
       (
        [planning_no] => 100 
        [pieces] => 0 
       ) 

      [2] => stdClass Object 
       (
        [planning_no] => 100-2 
        [pieces] => 0 
       ) 

      [3] => stdClass Object 
       (
        [planning_no] => 100 
        [pieces] => 148 
       ) 

      [4] => stdClass Object 
       (
        [planning_no] => 102 
        [pieces] => 0 
       ) 
      [5] => stdClass Object 
       (
        [planning_no] => 100-1 
        [pieces] => 0 
       ) 
     ) 

をソートする必要がある私は

形式以下
Array 
     (
      [0] => stdClass Object 
       (
        [planning_no] => 100 
        [pieces] => 0 
       ) 

      [1] => stdClass Object 
       (
        [planning_no] => 100 
        [pieces] => 148 
       ) 

      [2] => stdClass Object 
       (
        [planning_no] => 100-1 
        [pieces] => 0 
       ) 

      [3] => stdClass Object 
       (
        [planning_no] => 100-2 
        [pieces] => 0 
       ) 

      [4] => stdClass Object 
       (
        [planning_no] => 100-3 
        [pieces] => 0 
       ) 
      [5] => stdClass Object 
       (
        [planning_no] => 102 
        [pieces] => 0 
       ) 
     ) 
+3

が重複する可能性[私はPHPでの配列やデータをソートするにはどうすればよい?](のhttp:/ /stackoverflow.com/questions/17364127/how-can-i-sort-arrays-and-data-in-php) –

+0

ダッシュシステムの説明はありません。このリンクの –

+0

あなたはちょうどすべての '-'をphp replace関数を通して'、 'に置き換えていますか? – Loko

答えて

1

PHPを使用しarray_multisort()機能の配列をしたいです。

See it live here

ワーキングコード:

<?php 
$values = array(); 
$a = new stdClass(); 
$a->planning_no = '100-3'; 
$a->pieces = '0'; 
$values[] = $a; 
$a = new stdClass(); 
$a->planning_no = '100'; 
$a->pieces = '0'; 
$values[] = $a; 
$a = new stdClass(); 
$a->planning_no = '100-2'; 
$a->pieces = '0'; 
$values[] = $a; 
$a = new stdClass(); 
$a->planning_no = '100'; 
$a->pieces = '148'; 
$values[] = $a; 
$a = new stdClass(); 
$a->planning_no = '102'; 
$a->pieces = '0'; 
$values[] = $a; 
$a = new stdClass(); 
$a->planning_no = '100-1'; 
$a->pieces = '0'; 
$values[] = $a; 
$n = array(); 
if (! empty($values)) { 
foreach ($values as $value) { 
    $planning_no = str_replace('-', '.', $value->planning_no); 
    $n[] = array('planning_no' => $planning_no, 'pieces' => $value->pieces); 
} 
} 
array_multisort($n); 
$final = array(); 
if (! empty($n)) { 
foreach ($n as $elem) { 
    $planning_no = str_replace('.', '-', $elem['planning_no']); 
    $a = new stdClass(); 
    $a->planning_no = $planning_no; 
    $a->pieces = $elem['pieces']; 
    $final[] = $a; 
} 
} 
echo '<pre>';print_r($final);echo '</pre>'; 
?> 

出力:

Array 
(
    [0] => stdClass Object 
     (
      [planning_no] => 100 
      [pieces] => 0 
     ) 

    [1] => stdClass Object 
     (
      [planning_no] => 100 
      [pieces] => 148 
     ) 

    [2] => stdClass Object 
     (
      [planning_no] => 100-1 
      [pieces] => 0 
     ) 

    [3] => stdClass Object 
     (
      [planning_no] => 100-2 
      [pieces] => 0 
     ) 

    [4] => stdClass Object 
     (
      [planning_no] => 100-3 
      [pieces] => 0 
     ) 

    [5] => stdClass Object 
     (
      [planning_no] => 102 
      [pieces] => 0 
     ) 

) 
+0

ありがとうございました.....作品です –

+0

@UttamPanara、よろしくお願いします。 – Pupil

関連する問題