2016-06-02 2 views
0

배열 요소를 배열의 값으로 다른 변수에 따라 시작하도록 배열 요소를 옮기는 가장 좋은 방법은 무엇입니까? 예 : 시작에서다른 변수에 따라 배열 요소를 배열 시작 부분으로 옮기는 방법

I 이동할
$car = 'bmw'; 
$model = array('1' => array('color' => 'red' ,'model' => 'benz') , '2' =>array('color'=>'black',model'=> 'bmw')); 

'2'=> 어레이 ('컬러'=> '검은 색', '모델'=> 'BMW')은 $ 차 변수에 따라. 첫 번째 배열

$car = 'bmw'; 
$model = array('1' => 'benz' , '2' => 'bmw' , '3' => 'audi'); 
$key = array_search($car, $model); 
if ($key > 0) { 
    unset($model[$key]); 
    array_unshift($model, $car); 
} 
+1

무엇을 시도 했습니까? –

+0

초기 배열에 여러 "모델"이있을 경우 어떻게해야합니까? – RomanPerekhrest

답변

0

이 시도

<?php 

$car = 'bmw'; 
$models = array('1' => array('color' => 'red', 'model' => 'benz'), '2' => array('color' => 'black', 'model' => 'bmw'), '3' => array('color' => 'green', 'model' => 'audi')); 

foreach (array_values($models) as $key => $model) { 
    if ($model['model'] == $car) { 
    $index = $key; 
    break; 
    } 
} 

$models = array_slice($models, $index, 1, true) + array_slice($models, 0, $index, true) + array_slice($models, $index + 1, count($models), true); 

var_dump($models); 
+0

당신은 이런 식으로 인덱스를 사용할 것이지만, 나는 OP가 정말로 필요하다고 확신하지 못합니다. –

+0

방금 ​​제 질문을 편집했습니다. – nohan

0

에서 다음 코드는 트릭을 할 것입니다 어떤 인덱스를 이동하는

사용 array_unshift() 함수를 원래 키를 유지합니다 :

$model = array('2' =>array('color'=>'black','model'=> 'bmw'), '1' => array('color' => 'red' , 'model' => 'benz'));