2012-04-05 9 views
0

の開始時に、その要素を配置します。値のためのPHP検索多次元配列に、そして私はこの配列を検索する必要があり、アレイ

cars - 
     [0] -make : Ford 
      -model: Escort 
      -year: 1991 

     [1] -make: Honda 
      -model: Civic 
      -year: 1996 

     [2] -make: Vauxhall 
      -model: Astra 
      -year: 1972 

そして、(例えば)モデルは、「シビック」であるならば、場所「車のこと

:私はいくつかのusortバリエーションを試してみた

cars - 
     [0] -make: Honda 
      -model: Civic 
      -year: 1996 

     [1] -make : Ford 
      -model: Escort 
      -year: 1991   

     [2] -make: Vauxhall 
      -model: Astra 
      -year: 1972 

:位置0

でだから、最後列は次のようになります

が、これは単なる

答えて

1

1を返しているが、あなたが意味するか:


function sortByModel($a, $b) { 
    if($a["model"] == "Civic") { 
     return 0; 
    } 
    else { 
     return 1; 
    }  
} 
usort($a, 'sortByModel'); 
echo "<pre>"; 
print_r($a); 
0

または多分これはあなたが望むものである(必要に応じて出力され、少なくとも)

foreach($cars as $k => $v){ 
    if ($v['model'] == 'Civic'){ 
     unset($cars[$k]); 
     array_unshift($cars, $v); 
    } 
} 
0
<?php 
$cars = array(
    0=>array(
     'make' => 'Ford' 
     ,'model' => 'Escort' 
     ,'year' => 1991 
    ) 
    ,1=>array(
     'make' => 'Honda' 
     ,'model' => 'Civic' 
     ,'year' => 1996 
    ) 
    ,2=>array(
     'make' => 'Vauxhall' 
     ,'model' => 'Astra' 
     ,'year' => 1972 
    ) 
); 

var_dump("BEFORE",$cars); 
var_dump("AFTER",array_typesort($cars)); 

function array_typesort($arr, $model='Civic') { 
    foreach ($arr as $k => $v) { 
     if ($arr[$k]['model'] == $model) { 
      $out = array_splice($arr, $k, 1); 
      array_unshift($arr, $out[0]); 
      return $arr; 
     } 
    } 
} 
?> 
0

これを試すことができます:

function typesort($arr, $val) 
{ 

foreach($arr as $key=>$value) 
{ 
    if(in_array($val,$value)) 
    { 
     $tempArr = $value; 
     unset($arr[$key]); 
     break; 
    } 
} 
array_unshift($arr,$tempArr); 
return $arr; 
} 

print_r(typesort($data,'bbb'));