2017-10-05 134 views
3

我想先根据基于另一个数组的顺序对值进行排序。首先根据另一个数组对数组中的值进行排序

$countries = explode(',', 'AF,AL,DZ,AS,AD,FR,AO,AI,AQ,GB'); 
$popular = explode(',', 'FR,GB'); 

我从$countries我想在$popular定义的值,形成一个这样的数组:

$ordered = ['GB,FR,AF,AL,DZ,AS,AD,AO,AI,AQ'] 

感谢

+0

你需要编写此 –

回答

2

您可以使用array_mergearray_diff

检查工作演示这里https://eval.in/873974

$countries = explode(',', 'AF,AL,DZ,AS,AD,FR,AO,AI,AQ,GB'); 
$popular = explode(',', 'FR,GB'); 
sort($popular); // sort to manage order 

// remove common element from $countries and merge with $popular 
$ordered = array_merge($popular,array_diff($countries, $popular));  
echo "<pre>"; 
print_r($ordered); 
+0

自定义代码这就是我想要谢谢! – gold82

0

试试这个代码

<?php 
     $arr= array(); 
     $countries = explode(',', 'AF,AL,DZ,AS,AD,FR,AO,AI,AQ,GB'); 
     $popular = explode(',', 'FR,GB'); 
     $total_popular = count($popular); 
     $total_countries = count($countries); 

     for ($i=0; $i < $total_popular; $i++) { 
      if (in_array($popular[$i], $countries)) { 
       $arr[]=$popular[$i]; 
      } 
     } 
     for ($j=0; $j < $total_countries; $j++) { 
      if (! in_array($countries[$j], $arr)) { 
       $arr[]=$countries[$j]; 
      } 
     } 
     echo "<pre>"; 
     print_r($arr); 

     ?> 

你的期望这段代码的输出是

enter image description here

相关问题