我想先根據基於另一個數組的順序對值進行排序。首先根據另一個數組對數組中的值進行排序
$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']
感謝
我想先根據基於另一個數組的順序對值進行排序。首先根據另一個數組對數組中的值進行排序
$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']
感謝
您可以使用array_merge和array_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);
自定義代碼這就是我想要謝謝! – gold82
試試這個代碼
<?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);
?>
你的期望這段代碼的輸出是
你需要編寫此 –