$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 - 根據第二給定數組進行排序的陣列
$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 - 根據第二給定數組進行排序的陣列
此,到目前爲止,是提供所尋求的陣列順序的唯一的答案:
$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
,現在你可以編輯或刪除你的答案,因爲它也沒有給出輸入的預期結果: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
是的,你的答案更有希望,因爲它在數組a中保持順序更合適,做得好。 :) –
@mickmackusa,你的回答對我的一個案例不起作用,但它與正常的腳本一起工作,但隨着主代碼,它不會, 所以我用RomanPerekhrest回答了。 –
你想排序你的陣列? –
是的那種,來自a的值將按數組排序,如果a的值不在b中,那麼它不會考慮,並且如果在a中的值的順序中存在額外的值,則不應該改變了 –