v2.5.2
Giriş yap

PHP ile array'i istediğim sırada (sort order) yapmak?

r00t
204 defa görüntülendi

Elimde API'den gelen bir data var. Ancak ben gelen datayı kendi istediğim sırayla yeniden order etmek istiyorum.
örneğin;
gelen array içerisinde

[
  {
    "type": "dollar",
    "team_A_value": 35.75,
  },
  {
    "type": "euro",
    "team_A_value": 33.12,
  },
  {
    "type": "try",
    "team_A_value": "0.52,
  },
  ...
  ...

gibi giden bir data geldiğini düşünelim.
benim burada yapmak istediğim ise şu olacak;

$sortArray = ["try","dollar"];

çıktı istediğim sonuç ise, ben $sortArray değişkenimde "try" ve "dollar" sıralaması ile dataları getir dedim; ancak bunun dışında kalan "euro" veya diğer değerleri getirme.
"Sadece benim seçtiklerimi, benim belirttiğim sıra ile getir" demek istiyorum kısacası.

Nasıl yapabilirim?

emmir2
16 gün önce
<?php
$gelen_veri = [
  [
    "type" => "dollar",
    "team_A_value" => 35.75,
  ],
  [
    "type" => "euro",
    "team_A_value" => 33.12,
  ],
  [
    "type" => "try",
    "team_A_value" => 0.52,
  ],
];

$sortArray = ["try","dollar"];

function customSort($a, $b) {
    global $sortArray;
    $a_index = array_search($a['type'], $sortArray);
    $b_index = array_search($b['type'], $sortArray);
    return $a_index - $b_index;
}
usort($gelen_veri, 'customSort');
print_r($gelen_veri);
?>