2017-03-09 110 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回答了。 –

相關問題