v2.5.2
Giriş yap

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

r00t
413 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,
  },
  ...
  ...
PHP

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

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

çı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?

eminkurt
365 gün önce
    $data = [
  ["type" => "dollar", "team_A_value" => 35.75],
  ["type" => "euro", "team_A_value" => 33.12],
  ["type" => "try", "team_A_value" => 0.52],
  // Diğer elemanlar...
];

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

// Sadece $sortArray içinde belirtilen tipleri içeren öğeleri filtrele
$filteredData = array_filter($data, function ($item) use ($sortArray) {
    return in_array($item['type'], $sortArray);
});

// $sortArray'e göre sırala
usort($filteredData, function ($a, $b) use ($sortArray) {
    $positionA = array_search($a['type'], $sortArray);
    $positionB = array_search($b['type'], $sortArray);
    return $positionA - $positionB;
});

print_r($filteredData);
PHP