2017-03-09 85 views
-2
$a = array('val1','val2',200, 179,230, 234, 242); 
$b = array(230, 234, 242, 179, 100); 

所以阵列元应根据数组$ B和被排序$ resultArray应该是( 'VAL1', 'VAL2',200,230,234,242, 179)PHP - 根据第二给定数组进行排序的阵列

+0

你想排序你的阵列? –

+0

是的那种,来自a的值将按数组排序,如果a的值不在b中,那么它不会考虑,并且如果在a中的值的顺序中存在额外的值,则不应该改变了 –

回答

0

此,到目前为止,是提供所寻求的阵列顺序的唯一的答案:

$a = array('val1','val2',200, 179,230, 234, 242); 
$b = array(230, 234, 242, 179, 100); 

for($x=0,$size=sizeof($a); $x<$size; ++$x){ 
    if($key=array_search($a[$x],$b)){ 
     $result[$size+$key]=$a[$x]; 
    }else{ 
     $result[$x]=$a[$x]; 
    } 
} 
ksort($result); 
$result=array_values($result); 
print_r($result); 

'VAL1', 'VAL2',200,230,234,242,179

+0

,现在你可以编辑或删除你的答案,因为它也没有给出输入的预期结果:array('val1','val2',230,179,200,234,'val3',242 )'。 OP期望结果是你要求的结果是Array([0] => val3 [1] => 200 [2] => val1 [3] => val2 [4] => 230 [5] = > 234 [6] => 242 [7] => 179)* – RomanPerekhrest

+0

是的,你的答案更有希望,因为它在数组a中保持顺序更合适,做得好。 :) –

+0

@mickmackusa,你的回答对我的一个案例不起作用,但它与正常的脚本一起工作,但随着主代码,它不会, 所以我用RomanPerekhrest回答了。 –

相关问题