2017-06-09 9 views
-2

私は2つの配列を持っています。特定のテキストに一致するPHP配列キーをソート

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

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

) 

私は基本的に私は、最初の位置に最初の配列と完全に一致を配置する必要があります値

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

を持つ配列を必要としています。

可能ですか?

+2

それはあなたがこの配列をソートしたいプロパティに本当にはっきりしていない – rakwaht

+0

それは名前でちょうど並べ替えですか? PHPの['arsort'](http://php.net/manual/en/function.arsort.php) – KarelG

+0

@rakwahtを簡単にチェックできます。私は最初に、次に他の試合でiphone&greyと完全に一致したい。 –

答えて

2

はこれを試してみてください:

$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

関連する問題