2017-06-09 2 views
-2

Ich habe zwei Arrays.Sortieren Sie eine PHP-Array-Schlüssel mit bestimmten Texten

$search=Array ([0] => iphone [1] => grey) 

$required_data=Array ( 
      'iphonewhite' => "val1", 
      'iphonesilver' => "val1", 
      'iphonegrey' => "val1", 
      'iphonegrey silver' => "val1", 
      'iphonesilverwhiterose' => "val1", 

) 

Ich brauche ein Array mit Werten

$data=Array ( 
      'iphonegrey' => "val1", 
      'iphonegrey silver' => "val1", 
      'iphonewhite' => "val1", 
      'iphonesilver' => "val1", 
      'iphonesilverwhiterose' => "val1", 
) 

Grundsätzlich i brauchen die exakte Übereinstimmung mit dem ersten Array in die erste Position zu bringen.

Ist es möglich?

+2

Es ist nicht wirklich klar, auf welche Eigenschaft Sie dieses Array sortieren möchten – rakwaht

+0

Es ist nur nach Namen sortieren? Überprüfen Sie einfach PHP's ['arsort'] (http://php.net/manual/en/function.ars.php) – KarelG

+0

@rakwaht, wie einfach gesagt werden kann. Ich möchte zuerst mit anderen Spielen übereinstimmen. –

Antwort

2

Try this:

$search=array (0 => 'iphone', 1 => 'grey'); 

$required_data=array ( 
      'iphonewhite' => "val1", 
      'iphonesilver' => "val1", 
      'iphonegrey' => "val1", 
      'iphonegrey silver' => "val1", 
      'iphonesilverwhiterose' => "val1", 

); 
$searchStr = implode('', $search); //get the search string 
$matchArray = array(); 
$notMatchArray = array(); 
foreach($required_data as $key=>$val){ 
    if(strpos($key, $searchStr) === false){ //find search string if it exist in array key or not 
     $notMatchArray[$key] = $val; 
    }else{ 
     $matchArray[$key] = $val; 

    } 
} 

echo 'Final array'; 
print_r(array_merge($matchArray, $notMatchArray)); //merge two array 

Code snippet

Verwandte Themen