2012-04-05 4 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'));